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:32:35 UTC
[29/50] [abbrv] incubator-taverna-engine git commit:
taverna-platform-integration-tests/
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/9ca55d5c/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunIT.java
----------------------------------------------------------------------
diff --git a/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunIT.java b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunIT.java
new file mode 100644
index 0000000..9911e7c
--- /dev/null
+++ b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunIT.java
@@ -0,0 +1,1005 @@
+/*******************************************************************************
+ * Copyright (C) 2010 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package uk.org.taverna.platform;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import net.sf.taverna.t2.security.credentialmanager.UsernamePassword;
+
+import org.osgi.framework.ServiceReference;
+
+import uk.org.taverna.platform.data.api.Data;
+import uk.org.taverna.platform.data.api.DataService;
+import uk.org.taverna.platform.execution.api.ExecutionEnvironment;
+import uk.org.taverna.platform.report.State;
+import uk.org.taverna.platform.report.WorkflowReport;
+import uk.org.taverna.platform.run.api.RunProfile;
+import uk.org.taverna.platform.run.api.RunService;
+import uk.org.taverna.scufl2.api.container.WorkflowBundle;
+
+public class RunIT extends PlatformIT {
+
+ private RunService runService;
+ private DataService dataService;
+
+ protected void setup() throws Exception {
+ super.setup();
+ if (runService == null) {
+ ServiceReference runServiceReference = bundleContext
+ .getServiceReference("uk.org.taverna.platform.run.api.RunService");
+ runService = (RunService) bundleContext.getService(runServiceReference);
+ }
+ if (dataService == null) {
+ ServiceReference dataServiceReference = bundleContext
+ .getServiceReference("uk.org.taverna.platform.data.DataService");
+ dataService = (DataService) bundleContext.getService(dataServiceReference);
+ }
+ databaseConfiguration.setProvenanceEnabled(false);
+ }
+
+ public void testRun() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/in-out.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("test-input"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, runService.getWorkflowReport(runId), "out");
+
+ assertTrue(checkResult(results.get("out"), "test-input"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunApiConsumer() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/apiconsumer.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("test-input"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"), "TEST-INPUT"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunBeanshell() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/beanshell.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("test-input"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, report, "out");
+
+ List<Data> result = results.get("out").getElements();
+ assertEquals(1000, result.size());
+ assertEquals("test-input:0", result.get(0).getValue());
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunBiomart() throws Exception {
+ setup();
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/biomart.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, report, "out");
+
+ List<Data> result = results.get("out").getElements();
+ assertEquals(5, result.size());
+ assertEquals("ENSBTAG00000018854", result.get(0).getValue());
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ // public void testRunBiomoby() throws Exception {
+ // setup();
+ // WorkflowBundle workflowBundle = loadWorkflow("/t2flow/biomoby.t2flow");
+ //
+ // Set<ExecutionEnvironment> executionEnvironments = runService
+ // .getExecutionEnvironments(workflowBundle);
+ // for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ //
+ //
+ // String runId = runService.createRun(new RunProfile(executionEnvironment, workflowBundle));
+ // assertEquals(State.CREATED, runService.getState(runId));
+ //
+ // WorkflowReport report = runService.getWorkflowReport(runId);
+ // System.out.println(report);
+ //
+ // runService.start(runId);
+ // assertTrue(runService.getState(runId).equals(State.RUNNING)
+ // || runService.getState(runId).equals(State.COMPLETED));
+ // System.out.println(report);
+ //
+ // Map<String, Data> results = runService.getOutputs(runId);
+ // assertNotNull(results);
+ // waitForResults(results, report, "out");
+ //
+ // T2Reference resultReference = results.get("out");
+ // if (resultReference.containsErrors()) {
+ // printErrors(referenceService, resultReference);
+ // }
+ // assertFalse(resultReference.containsErrors());
+ // @SuppressWarnings("unchecked")
+ // List<String> result = (List<String>) referenceService.renderIdentifier(resultReference,
+ // String.class, null);
+ // assertEquals(5, result.size());
+ // assertEquals("ENSBTAG00000018854", result.get(0));
+ // assertEquals(State.COMPLETED, runService.getState(runId));
+ // System.out.println(report);
+ // }
+ // }
+
+ public void testRunDataflow() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/dataflow.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("test input"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertFalse(runService.getState(runId).equals(State.CREATED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "nested dataflow : test input"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunLocalworker() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/localworker.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("Tom"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"), "Hello Tom"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunRest() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/rest.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ Object outResult = results.get("out").getValue();
+ if (outResult instanceof byte[]) {
+ outResult = new String((byte[]) outResult);
+ }
+ assertTrue(outResult instanceof String);
+ String outString = (String) outResult;
+ assertTrue(outString.contains("<name>AATM_RABIT</name>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunRestSecureBasic() throws Exception {
+ setup();
+ credentialManager.addUsernameAndPasswordForService(new UsernamePassword("testuser",
+ "testpasswd"), URI
+ .create("http://heater.cs.man.ac.uk:7070/#Example+HTTP+BASIC+Authentication"));
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-basic-authentication.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+ + "<HTML><HEAD><TITLE>Apache Tomcat Examples</TITLE>\n"
+ + "<META http-equiv=Content-Type content=\"text/html\">\n"
+ + "</HEAD>\n"
+ + "<BODY>\n"
+ + "<P>\n"
+ + "<H3>Secure Apache Tomcat Examples</H3>\n"
+ + "<P>Congratulations! If you see this page that means that you have authenticated yourself successfully using HTTP Basic Authentication.</P>\n"
+ + "</BODY></HTML>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunRestSecureBasicHttps() throws Exception {
+ setup();
+ credentialManager.addUsernameAndPasswordForService(new UsernamePassword("testuser",
+ "testpasswd"), URI
+ .create("https://heater.cs.man.ac.uk:7443/#Example+HTTP+BASIC+Authentication"));
+
+ URL trustedCertficateFileURL = getClass().getResource(
+ "/security/tomcat_heater_certificate.pem");
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ X509Certificate trustedCertficate = (X509Certificate) certFactory
+ .generateCertificate(trustedCertficateFileURL.openStream());
+ credentialManager.addTrustedCertificate(trustedCertficate);
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-basic-authentication-https.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+ + "<HTML><HEAD><TITLE>Apache Tomcat Examples</TITLE>\n"
+ + "<META http-equiv=Content-Type content=\"text/html\">\n"
+ + "</HEAD>\n"
+ + "<BODY>\n"
+ + "<P>\n"
+ + "<H3>Secure Apache Tomcat Examples</H3>\n"
+ + "<P>Congratulations! If you see this page that means that you have authenticated yourself successfully using HTTP Basic Authentication.</P>\n"
+ + "</BODY></HTML>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunRestSecureDigest() throws Exception {
+ setup();
+ credentialManager.addUsernameAndPasswordForService(new UsernamePassword("testuser",
+ "testpasswd"), URI
+ .create("http://heater.cs.man.ac.uk:7070/#Example+HTTP+BASIC+Authentication"));
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-digest-authentication.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+ + "<HTML><HEAD><TITLE>Apache Tomcat Examples</TITLE>\n"
+ + "<META http-equiv=Content-Type content=\"text/html\">\n"
+ + "</HEAD>\n"
+ + "<BODY>\n"
+ + "<P>\n"
+ + "<H3>Secure Apache Tomcat Examples</H3>\n"
+ + "<P>Congratulations! If you see this page that means that you have authenticated yourself successfully using HTTP Digest Authentication.</P>\n"
+ + "</BODY></HTML>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunRestSecureDigestHttps() throws Exception {
+ setup();
+ credentialManager.addUsernameAndPasswordForService(new UsernamePassword("testuser",
+ "testpasswd"), URI
+ .create("http://heater.cs.man.ac.uk:7443/#Example+HTTP+BASIC+Authentication"));
+
+ URL trustedCertficateFileURL = getClass().getResource(
+ "/security/tomcat_heater_certificate.pem");
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ X509Certificate trustedCertficate = (X509Certificate) certFactory
+ .generateCertificate(trustedCertficateFileURL.openStream());
+ credentialManager.addTrustedCertificate(trustedCertficate);
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-digest-authentication-https.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+ + "<HTML><HEAD><TITLE>Apache Tomcat Examples</TITLE>\n"
+ + "<META http-equiv=Content-Type content=\"text/html\">\n"
+ + "</HEAD>\n"
+ + "<BODY>\n"
+ + "<P>\n"
+ + "<H3>Secure Apache Tomcat Examples</H3>\n"
+ + "<P>Congratulations! If you see this page that means that you have authenticated yourself successfully using HTTP Digest Authentication.</P>\n"
+ + "</BODY></HTML>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunSpreadsheetImport() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/spreadsheetimport.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ List<Data> result = results.get("out").getElements();
+ assertEquals(35, result.size());
+ assertEquals("1971.0", result.get(1).getValue());
+ assertEquals("2004.0", result.get(34).getValue());
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunSoaplab() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/soaplab.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "sequence");
+
+ assertTrue(checkResult(results.get("sequence"),
+ "ID X52524; SV 1; linear; genomic DNA; STD; INV; 4507 BP."));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunStringConstant() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/stringconstant.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"), "Test Value"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ }
+ }
+
+ public void testRunTool() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/tool.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"), "HelloWorld"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ }
+ }
+
+ public void testRunIteration() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/iteration.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("in", dataService.create("test"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+
+ waitForResults(results, report, "cross");
+ List<Data> crossResult = results.get("cross").getElements();
+ assertEquals(10, crossResult.size());
+ assertEquals(10, crossResult.get(0).getElements().size());
+ assertEquals(10, crossResult.get(5).getElements().size());
+ assertEquals("test:0test:0", crossResult.get(0).getElements().get(0).getValue());
+ assertEquals("test:0test:1", crossResult.get(0).getElements().get(1).getValue());
+ assertEquals("test:4test:2", crossResult.get(4).getElements().get(2).getValue());
+ assertEquals("test:7test:6", crossResult.get(7).getElements().get(6).getValue());
+
+ waitForResults(results, report, "dot");
+
+ List<Data> dotResult = results.get("dot").getElements();
+ assertEquals(10, dotResult.size());
+ assertEquals("test:0test:0", dotResult.get(0).getValue());
+ assertEquals("test:5test:5", dotResult.get(5).getValue());
+
+ waitForResults(results, report, "crossdot");
+
+ List<Data> crossdotResult = results.get("crossdot").getElements();
+ assertEquals(10, crossdotResult.size());
+ assertEquals(10, crossdotResult.get(0).getElements().size());
+ assertEquals(10, crossdotResult.get(5).getElements().size());
+ assertEquals("test:0test:0test", crossdotResult.get(0).getElements().get(0).getValue());
+ assertEquals("test:0test:1test", crossdotResult.get(0).getElements().get(1).getValue());
+ assertEquals("test:4test:2test", crossdotResult.get(4).getElements().get(2).getValue());
+ assertEquals("test:7test:6test", crossdotResult.get(7).getElements().get(6).getValue());
+
+ waitForResults(results, report, "dotcross");
+
+ List<Data> dotcrossResult = results.get("dotcross").getElements();
+ assertEquals(10, dotResult.size());
+ assertEquals("test:0test:0test", dotcrossResult.get(0).getValue());
+ assertEquals("test:5test:5test", dotcrossResult.get(5).getValue());
+
+ waitForResults(results, report, "dotdot");
+
+ List<Data> dotdotResult = results.get("dotdot").getElements();
+ assertEquals(10, dotResult.size());
+ assertEquals("test:0test:0test:0", dotdotResult.get(0).getValue());
+ assertEquals("test:5test:5test:5", dotdotResult.get(5).getValue());
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunWSDL() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/wsdl.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ // assertTrue(checkResult(results.get("out"),
+ // "Apache Axis version: 1.4\nBuilt on Apr 22, 2006 (06:55:48 PDT)"));
+ assertTrue(checkResult(results.get("out"),
+ "Apache Axis version: 1.2\nBuilt on May 03, 2005 (02:20:24 EDT)"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunWSDLSecure() throws Exception {
+ setup();
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-PlaintextPassword?wsdl"));
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/wsdl-secure.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"), "Hello Alan!"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunWSDLSecureFull() throws Exception {
+ setup();
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-PlaintextPassword?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-DigestPassword?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-DigestPassword-Timestamp?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-PlaintextPassword-Timestamp?wsdl"));
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-ws.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out_plaintext", "out_digest", "out_digest_timestamp",
+ "out_plaintext_timestamp");
+
+ assertTrue(checkResult(results.get("out_plaintext"), "Hello Alan!"));
+ assertTrue(checkResult(results.get("out_digest"), "Hello Stian!"));
+ assertTrue(checkResult(results.get("out_digest_timestamp"),
+ "Hello David!"));
+ assertTrue(checkResult(results.get("out_plaintext_timestamp"),
+ "Hello Alex!"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunWSDLSecureSsh() throws Exception {
+ setup();
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("https://heater.cs.man.ac.uk:7443/axis/services/HelloService-PlaintextPassword?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("https://heater.cs.man.ac.uk:7443/axis/services/HelloService-DigestPassword?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("https://heater.cs.man.ac.uk:7443/axis/services/HelloService-DigestPassword-Timestamp?wsdl"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("https://heater.cs.man.ac.uk:7443/axis/services/HelloService-PlaintextPassword-Timestamp?wsdl"));
+
+ URL trustedCertficateFileURL = getClass().getResource(
+ "/security/tomcat_heater_certificate.pem");
+ CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
+ X509Certificate trustedCertficate = (X509Certificate) certFactory
+ .generateCertificate(trustedCertficateFileURL.openStream());
+ credentialManager.addTrustedCertificate(trustedCertficate);
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/secure-ws-https.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertEquals(State.RUNNING, runService.getState(runId));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out_plaintext", "out_digest", "out_digest_timestamp",
+ "out_plaintext_timestamp");
+
+ assertTrue(checkResult(results.get("out_plaintext"), "Hello Alan!"));
+ assertTrue(checkResult(results.get("out_digest"), "Hello Stian!"));
+ assertTrue(checkResult(results.get("out_digest_timestamp"),
+ "Hello David!"));
+ assertTrue(checkResult(results.get("out_plaintext_timestamp"),
+ "Hello Alex!"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunXMLSplitter() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/xmlSplitter.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ inputs.put("firstName", dataService.create("John"));
+ inputs.put("lastName", dataService.create("Smith"));
+ inputs.put("age", dataService.create("21"));
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "John Smith (21) of 40, Oxford Road. Manchester."));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunXPath() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/xpath.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ waitForResults(results, report, "out");
+
+ assertTrue(checkResult(results.get("out"),
+ "<test-element>test</test-element>"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunFromFile() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/in-out.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ Map<String, Data> inputs = new HashMap<String, Data>();
+ File file = loadFile("/t2flow/input.txt");
+ Data data = dataService.create(file.toURI());
+ assertTrue(data.isReference());
+ inputs.put("in", data);
+
+ String runId = runService.createRun(new RunProfile(executionEnvironment,
+ workflowBundle, inputs));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, runService.getWorkflowReport(runId), "out");
+
+ assertTrue(checkResult(results.get("out"), "test input value"));
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/9ca55d5c/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunParallelIT.java
----------------------------------------------------------------------
diff --git a/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunParallelIT.java b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunParallelIT.java
new file mode 100644
index 0000000..7ba4a4f
--- /dev/null
+++ b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunParallelIT.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (C) 2011 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package uk.org.taverna.platform;
+
+import java.net.URI;
+import java.util.HashSet;
+import java.util.Set;
+
+import net.sf.taverna.t2.security.credentialmanager.UsernamePassword;
+
+import org.osgi.framework.ServiceReference;
+
+import uk.org.taverna.platform.execution.api.ExecutionEnvironment;
+import uk.org.taverna.platform.report.State;
+import uk.org.taverna.platform.report.WorkflowReport;
+import uk.org.taverna.platform.run.api.RunProfile;
+import uk.org.taverna.platform.run.api.RunService;
+import uk.org.taverna.scufl2.api.container.WorkflowBundle;
+
+public class RunParallelIT extends PlatformIT {
+
+ private RunService runService;
+
+ private ExecutionEnvironment executionEnvironment;
+
+ protected void setup() throws Exception {
+ super.setup();
+ if (runService == null) {
+ ServiceReference runServiceReference = bundleContext
+ .getServiceReference("uk.org.taverna.platform.run.api.RunService");
+ runService = (RunService) bundleContext.getService(runServiceReference);
+ }
+ if (executionEnvironment == null) {
+ executionEnvironment = runService.getExecutionEnvironments().iterator().next();
+ }
+ credentialManager.addUsernameAndPasswordForService(new UsernamePassword("testuser",
+ "testpasswd"), URI
+ .create("http://heater.cs.man.ac.uk:7070/#Example+HTTP+BASIC+Authentication"));
+ credentialManager
+ .addUsernameAndPasswordForService(
+ new UsernamePassword("testuser", "testpasswd"),
+ URI.create("http://heater.cs.man.ac.uk:7070/axis/services/HelloService-PlaintextPassword?wsdl"));
+ }
+
+ public void testRun() throws Exception {
+ setup();
+
+ String[] workflows = { "biomart", "rest", "secure-basic-authentication",
+ "spreadsheetimport", "stringconstant", "wsdl", "wsdl-secure", "xpath" };
+ Set<String> runIDs= new HashSet<String>();
+
+ for (int i = 0; i < workflows.length; i++) {
+ int runs = Math.max(1, (int) Math.ceil(Math.random() * 10));
+ System.out.println("Creating " + runs + " runs for workflow " + workflows[i]);
+ for (int j = 0; j < runs; j++) {
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/" + workflows[i] + ".t2flow");
+ String run = runService.createRun(new RunProfile(executionEnvironment, workflowBundle));
+ runService.getWorkflowReport(run).getSubject().setName(workflows[i] + j);
+ runIDs.add(run);
+ }
+ }
+
+ for (String runId : runIDs) {
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println("Starting " + report.getSubject().getName());
+ runService.start(runId);
+ }
+
+ for (String runId : runIDs) {
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println("Waiting for " + report.getSubject().getName() + " to complete");
+ assertTrue(waitForState(report, State.COMPLETED, false));
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/9ca55d5c/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunWorkflowsIT.java
----------------------------------------------------------------------
diff --git a/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunWorkflowsIT.java b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunWorkflowsIT.java
new file mode 100644
index 0000000..6c36821
--- /dev/null
+++ b/taverna-platform-integration-tests/src/test/java/uk/org/taverna/platform/RunWorkflowsIT.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (C) 2010 The University of Manchester
+ *
+ * Modifications to the initial code base are copyright of their
+ * respective authors, or their employers as appropriate.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package uk.org.taverna.platform;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.osgi.framework.ServiceReference;
+
+import uk.org.taverna.platform.data.api.Data;
+import uk.org.taverna.platform.execution.api.ExecutionEnvironment;
+import uk.org.taverna.platform.report.State;
+import uk.org.taverna.platform.report.WorkflowReport;
+import uk.org.taverna.platform.run.api.RunProfile;
+import uk.org.taverna.platform.run.api.RunService;
+import uk.org.taverna.scufl2.api.container.WorkflowBundle;
+
+public class RunWorkflowsIT extends PlatformIT {
+
+ private RunService runService;
+
+ protected void setup() throws Exception {
+ super.setup();
+ if (runService == null) {
+ ServiceReference runServiceReference = bundleContext
+ .getServiceReference("uk.org.taverna.platform.run.api.RunService");
+ runService = (RunService) bundleContext.getService(runServiceReference);
+ }
+ }
+
+ public void testRunFetchTodaysXkcdComic() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/FetchTodaysXkcdComic.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, report, "todaysXkcd");
+
+ List<Data> result = results.get("todaysXkcd").getElements();
+ assertEquals(1, result.size());
+ Object value = result.get(0).getValue();
+ assert(value instanceof byte[]);
+ byte[] binaryValue = (byte[]) value;
+ assertEquals('P', (char) binaryValue[1]);
+ assertEquals('N', (char) binaryValue[2]);
+ assertEquals('G', (char) binaryValue[3]);
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+ public void testRunGBSeqTest() throws Exception {
+ setup();
+
+ WorkflowBundle workflowBundle = loadWorkflow("/t2flow/GBSeqTest.t2flow");
+
+ Set<ExecutionEnvironment> executionEnvironments = runService
+ .getExecutionEnvironments(workflowBundle);
+ assertTrue(executionEnvironments.size() > 0);
+ for (ExecutionEnvironment executionEnvironment : executionEnvironments) {
+ String runId = runService
+ .createRun(new RunProfile(executionEnvironment, workflowBundle));
+ assertEquals(State.CREATED, runService.getState(runId));
+
+ WorkflowReport report = runService.getWorkflowReport(runId);
+ System.out.println(report);
+
+ runService.start(runId);
+ assertTrue(runService.getState(runId).equals(State.RUNNING)
+ || runService.getState(runId).equals(State.COMPLETED));
+ System.out.println(report);
+
+ Map<String, Data> results = runService.getOutputs(runId);
+ assertNotNull(results);
+ waitForResults(results, runService.getWorkflowReport(runId), "nuc_tiny");
+
+ assertTrue(checkResult(results.get("nuc_tiny"),
+ "<?xml version=\"1.0\"?>\n"
+ + " <!DOCTYPE TSeqSet PUBLIC \"-//NCBI//NCBI TSeq/EN\" \"http://www.ncbi.nlm.nih.gov/dtd/NCBI_TSeq.dtd\">\n"
+ + " <TSeqSet>\n"
+ + "<TSeq>\n"
+ + " <TSeq_seqtype value=\"nucleotide\"/>\n"
+ + " <TSeq_gi>119395733</TSeq_gi>\n"
+ + " <TSeq_accver>NM_000059.3</TSeq_accver>\n"
+ + " <TSeq_taxid>9606</TSeq_taxid>\n"
+ + " <TSeq_orgname>Homo sapiens</TSeq_orgname>\n"
+ + " <TSeq_defline>Homo sapiens breast cancer 2, early onset (BRCA2), mRNA</TSeq_defline>\n"
+ + " <TSeq_length>11386</TSeq_length>\n"
+ + " <TSeq_sequence>GTGGCGCGAGCTTCTGAAACTAGGCGGCAGAGGCGGAGCCGCTGTGGCACTGCTGCGCCTCTGCTGCGCCTCGGGTGTCTTTTGCGGCGGTGGGTCGCCGCCGGGAGAAGCGTGAGGGGACAGATTTGTGACCGGCGCGGTTTTTGTCAGCTTACTCCGGCCAAAAAAGAACTGCACCTCTGGAGCGGACTTATTTACCAAGCATTGGAGGAATATCGTAGGTAAAAATGCCTATTGGATCCAAAGAGAGGCCAACATTTTTTGAAATTTTTAAGACACGCTGCAACAAAGCAGATTTAGGACCAATAAGTCTTAATTGGTTTGAAGAACTTTCTTCAGAAGCTCCACCCTATAATTCTGAACCTGCAGAAGAATCTGAACATAAAAACAACAATTACGAACCAAACCTATTTAAAACTCCACAAAGGAAACCATCTTATAATCAGCTGGCTTCAACTCCAATAATATTCAAAGAGCAAGGGCTGACTCTGCCGCTGTACCAATCTCCTGTAAAAGAATTAGATAAATTCAAATTAGACTTAGGAAGGAATGTTCCCAATAGTAGACATAAAAGTCTTCGCACAGTGAAAACTAAAATGGATCAAGCAGATGATGTTTCCTGTCCACTTCTAAATTCTTGTCTTAGTGAAAGTCCTGTTGTTCTACAATGTACACATGTAACACCACAAAGAGATAAGTCAGTGGTATGTGGGAGTTTGTTTCATACACCAAAGTTTGTGAAGGGTCGTCAGACACCAAAACATATTTCTGAAAGTCTAGGAGCTGAGGTGGATCCTGATATGTCTTGGTCAAGTTCTTTAGCTACACCACCCACCCTTAGTTCTACTGTGCTCATAGTCAGAAATGAAGAAGCATCTGAAACTGTATTTCCTCATGATACTACTGCTAATGTGAAAAGCTATTTTTCCAATCATGATGAAAGTCTGAAGAAAAATGATAGATTTATCGC
TTCTGTGACAGACAGTGAAAACACAAATCAAAGAGAAGCTGCAAGTCATGGATTTGGAAAAACATCAGGGAATTCATTTAAAGTAAATAGCTGCAAAGACCACATTGGAAAGTCAATGCCAAATGTCCTAGAAGATGAAGTATATGAAACAGTTGTAGATACCTCTGAAGAAGATAGTTTTTCATTATGTTTTTCTAAATGTAGAACAAAAAATCTACAAAAAGTAAGAACTAGCAAGACTAGGAAAAAAATTTTCCATGAAGCAAACGCTGATGAATGTGAAAAATCTAAAAACCAAGTGAAAGAAAAATACTCATTTGTATCTGAAGTGGAACCAAATGATACTGATCCATTAGATTCAAATGTAGCAAATCAGAAGCCCTTTGAGAGTGGAAGTGACAAAATCTCCAAGGAAGTTGTACCGTCTTTGGCCTGTGAATGGTCTCAACTAACCCTTTCAGGTCTAAATGGAGCCCAGATGGAGAAAATACCCCTATTGCATATTTCTTCATGTGACCAAAATATTTCAGAAAAAGACCTATTAGACACAGAGAACAAAAGAAAGAAAGATTTTCTTACTTCAGAGAATTCTTTGCCACGTATTTCTAGCCTACCAAAATCAGAGAAGCCATTAAATGAGGAAACAGTGGTAAATAAGAGAGATGAAGAGCAGCATCTTGAATCTCATACAGACTGCATTCTTGCAGTAAAGCAGGCAATATCTGGAACTTCTCCAGTGGCTTCTTCATTTCAGGGTATCAAAAAGTCTATATTCAGAATAAGAGAATCACCTAAAGAGACTTTCAATGCAAGTTTTTCAGGTCATATGACTGATCCAAACTTTAAAAAAGAAACTGAAGCCTCTGAAAGTGGACTGGAAATACATACTGTTTGCTCACAGAAGGAGGACTCCTTATGTCCAAATTTAATTGATAATGGAAGCTGGCCAGCCACCACCACACAGAATTCTGTAGCTTTGAAGAATGCAGGTTTAATA
TCCACTTTGAAAAAGAAAACAAATAAGTTTATTTATGCTATACATGATGAAACATCTTATAAAGGAAAAAAAATACCGAAAGACCAAAAATCAGAACTAATTAACTGTTCAGCCCAGTTTGAAGCAAATGCTTTTGAAGCACCACTTACATTTGCAAATGCTGATTCAGGTTTATTGCATTCTTCTGTGAAAAGAAGCTGTTCACAGAATGATTCTGAAGAACCAACTTTGTCCTTAACTAGCTCTTTTGGGACAATTCTGAGGAAATGTTCTAGAAATGAAACATGTTCTAATAATACAGTAATCTCTCAGGATCTTGATTATAAAGAAGCAAAATGTAATAAGGAAAAACTACAGTTATTTATTACCCCAGAAGCTGATTCTCTGTCATGCCTGCAGGAAGGACAGTGTGAAAATGATCCAAAAAGCAAAAAAGTTTCAGATATAAAAGAAGAGGTCTTGGCTGCAGCATGTCACCCAGTACAACATTCAAAAGTGGAATACAGTGATACTGACTTTCAATCCCAGAAAAGTCTTTTATATGATCATGAAAATGCCAGCACTCTTATTTTAACTCCTACTTCCAAGGATGTTCTGTCAAACCTAGTCATGATTTCTAGAGGCAAAGAATCATACAAAATGTCAGACAAGCTCAAAGGTAACAATTATGAATCTGATGTTGAATTAACCAAAAATATTCCCATGGAAAAGAATCAAGATGTATGTGCTTTAAATGAAAATTATAAAAACGTTGAGCTGTTGCCACCTGAAAAATACATGAGAGTAGCATCACCTTCAAGAAAGGTACAATTCAACCAAAACACAAATCTAAGAGTAATCCAAAAAAATCAAGAAGAAACTACTTCAATTTCAAAAATAACTGTCAATCCAGACTCTGAAGAACTTTTCTCAGACAATGAGAATAATTTTGTCTTCCAAGTAGCTAATGAAAGGAATAATCTTGCTTTAGGAAATACTAAGGAACTTCATGAAACAG
ACTTGACTTGTGTAAACGAACCCATTTTCAAGAACTCTACCATGGTTTTATATGGAGACACAGGTGATAAACAAGCAACCCAAGTGTCAATTAAAAAAGATTTGGTTTATGTTCTTGCAGAGGAGAACAAAAATAGTGTAAAGCAGCATATAAAAATGACTCTAGGTCAAGATTTAAAATCGGACATCTCCTTGAATATAGATAAAATACCAGAAAAAAATAATGATTACATGAACAAATGGGCAGGACTCTTAGGTCCAATTTCAAATCACAGTTTTGGAGGTAGCTTCAGAACAGCTTCAAATAAGGAAATCAAGCTCTCTGAACATAACATTAAGAAGAGCAAAATGTTCTTCAAAGATATTGAAGAACAATATCCTACTAGTTTAGCTTGTGTTGAAATTGTAAATACCTTGGCATTAGATAATCAAAAGAAACTGAGCAAGCCTCAGTCAATTAATACTGTATCTGCACATTTACAGAGTAGTGTAGTTGTTTCTGATTGTAAAAATAGTCATATAACCCCTCAGATGTTATTTTCCAAGCAGGATTTTAATTCAAACCATAATTTAACACCTAGCCAAAAGGCAGAAATTACAGAACTTTCTACTATATTAGAAGAATCAGGAAGTCAGTTTGAATTTACTCAGTTTAGAAAACCAAGCTACATATTGCAGAAGAGTACATTTGAAGTGCCTGAAAACCAGATGACTATCTTAAAGACCACTTCTGAGGAATGCAGAGATGCTGATCTTCATGTCATAATGAATGCCCCATCGATTGGTCAGGTAGACAGCAGCAAGCAATTTGAAGGTACAGTTGAAATTAAACGGAAGTTTGCTGGCCTGTTGAAAAATGACTGTAACAAAAGTGCTTCTGGTTATTTAACAGATGAAAATGAAGTGGGGTTTAGGGGCTTTTATTCTGCTCATGGCACAAAACTGAATGTTTCTACTGAAGCTCTGCAAAAAGCTGTGAAACTGTTTAGTGATATTGA
GAATATTAGTGAGGAAACTTCTGCAGAGGTACATCCAATAAGTTTATCTTCAAGTAAATGTCATGATTCTGTTGTTTCAATGTTTAAGATAGAAAATCATAATGATAAAACTGTAAGTGAAAAAAATAATAAATGCCAACTGATATTACAAAATAATATTGAAATGACTACTGGCACTTTTGTTGAAGAAATTACTGAAAATTACAAGAGAAATACTGAAAATGAAGATAACAAATATACTGCTGCCAGTAGAAATTCTCATAACTTAGAATTTGATGGCAGTGATTCAAGTAAAAATGATACTGTTTGTATTCATAAAGATGAAACGGACTTGCTATTTACTGATCAGCACAACATATGTCTTAAATTATCTGGCCAGTTTATGAAGGAGGGAAACACTCAGATTAAAGAAGATTTGTCAGATTTAACTTTTTTGGAAGTTGCGAAAGCTCAAGAAGCATGTCATGGTAATACTTCAAATAAAGAACAGTTAACTGCTACTAAAACGGAGCAAAATATAAAAGATTTTGAGACTTCTGATACATTTTTTCAGACTGCAAGTGGGAAAAATATTAGTGTCGCCAAAGAGTCATTTAATAAAATTGTAAATTTCTTTGATCAGAAACCAGAAGAATTGCATAACTTTTCCTTAAATTCTGAATTACATTCTGACATAAGAAAGAACAAAATGGACATTCTAAGTTATGAGGAAACAGACATAGTTAAACACAAAATACTGAAAGAAAGTGTCCCAGTTGGTACTGGAAATCAACTAGTGACCTTCCAGGGACAACCCGAACGTGATGAAAAGATCAAAGAACCTACTCTATTGGGTTTTCATACAGCTAGCGGGAAAAAAGTTAAAATTGCAAAGGAATCTTTGGACAAAGTGAAAAACCTTTTTGATGAAAAAGAGCAAGGTACTAGTGAAATCACCAGTTTTAGCCATCAATGGGCAAAGACCCTAAAGTACAGAGAGGCCTGTAAAGACCTTGAA
TTAGCATGTGAGACCATTGAGATCACAGCTGCCCCAAAGTGTAAAGAAATGCAGAATTCTCTCAATAATGATAAAAACCTTGTTTCTATTGAGACTGTGGTGCCACCTAAGCTCTTAAGTGATAATTTATGTAGACAAACTGAAAATCTCAAAACATCAAAAAGTATCTTTTTGAAAGTTAAAGTACATGAAAATGTAGAAAAAGAAACAGCAAAAAGTCCTGCAACTTGTTACACAAATCAGTCCCCTTATTCAGTCATTGAAAATTCAGCCTTAGCTTTTTACACAAGTTGTAGTAGAAAAACTTCTGTGAGTCAGACTTCATTACTTGAAGCAAAAAAATGGCTTAGAGAAGGAATATTTGATGGTCAACCAGAAAGAATAAATACTGCAGATTATGTAGGAAATTATTTGTATGAAAATAATTCAAACAGTACTATAGCTGAAAATGACAAAAATCATCTCTCCGAAAAACAAGATACTTATTTAAGTAACAGTAGCATGTCTAACAGCTATTCCTACCATTCTGATGAGGTATATAATGATTCAGGATATCTCTCAAAAAATAAACTTGATTCTGGTATTGAGCCAGTATTGAAGAATGTTGAAGATCAAAAAAACACTAGTTTTTCCAAAGTAATATCCAATGTAAAAGATGCAAATGCATACCCACAAACTGTAAATGAAGATATTTGCGTTGAGGAACTTGTGACTAGCTCTTCACCCTGCAAAAATAAAAATGCAGCCATTAAATTGTCCATATCTAATAGTAATAATTTTGAGGTAGGGCCACCTGCATTTAGGATAGCCAGTGGTAAAATCGTTTGTGTTTCACATGAAACAATTAAAAAAGTGAAAGACATATTTACAGACAGTTTCAGTAAAGTAATTAAGGAAAACAACGAGAATAAATCAAAAATTTGCCAAACGAAAATTATGGCAGGTTGTTACGAGGCATTGGATGATTCAGAGGATATTCTTCATAACTCTCTAGATA
ATGATGAATGTAGCACGCATTCACATAAGGTTTTTGCTGACATTCAGAGTGAAGAAATTTTACAACATAACCAAAATATGTCTGGATTGGAGAAAGTTTCTAAAATATCACCTTGTGATGTTAGTTTGGAAACTTCAGATATATGTAAATGTAGTATAGGGAAGCTTCATAAGTCAGTCTCATCTGCAAATACTTGTGGGATTTTTAGCACAGCAAGTGGAAAATCTGTCCAGGTATCAGATGCTTCATTACAAAACGCAAGACAAGTGTTTTCTGAAATAGAAGATAGTACCAAGCAAGTCTTTTCCAAAGTATTGTTTAAAAGTAACGAACATTCAGACCAGCTCACAAGAGAAGAAAATACTGCTATACGTACTCCAGAACATTTAATATCCCAAAAAGGCTTTTCATATAATGTGGTAAATTCATCTGCTTTCTCTGGATTTAGTACAGCAAGTGGAAAGCAAGTTTCCATTTTAGAAAGTTCCTTACACAAAGTTAAGGGAGTGTTAGAGGAATTTGATTTAATCAGAACTGAGCATAGTCTTCACTATTCACCTACGTCTAGACAAAATGTATCAAAAATACTTCCTCGTGTTGATAAGAGAAACCCAGAGCACTGTGTAAACTCAGAAATGGAAAAAACCTGCAGTAAAGAATTTAAATTATCAAATAACTTAAATGTTGAAGGTGGTTCTTCAGAAAATAATCACTCTATTAAAGTTTCTCCATATCTCTCTCAATTTCAACAAGACAAACAACAGTTGGTATTAGGAACCAAAGTGTCACTTGTTGAGAACATTCATGTTTTGGGAAAAGAACAGGCTTCACCTAAAAACGTAAAAATGGAAATTGGTAAAACTGAAACTTTTTCTGATGTTCCTGTGAAAACAAATATAGAAGTTTGTTCTACTTACTCCAAAGATTCAGAAAACTACTTTGAAACAGAAGCAGTAGAAATTGCTAAAGCTTTTATGGAAGATGATGAACTGACAGA
TTCTAAACTGCCAAGTCATGCCACACATTCTCTTTTTACATGTCCCGAAAATGAGGAAATGGTTTTGTCAAATTCAAGAATTGGAAAAAGAAGAGGAGAGCCCCTTATCTTAGTGGGAGAACCCTCAATCAAAAGAAACTTATTAAATGAATTTGACAGGATAATAGAAAATCAAGAAAAATCCTTAAAGGCTTCAAAAAGCACTCCAGATGGCACAATAAAAGATCGAAGATTGTTTATGCATCATGTTTCTTTAGAGCCGATTACCTGTGTACCCTTTCGCACAACTAAGGAACGTCAAGAGATACAGAATCCAAATTTTACCGCACCTGGTCAAGAATTTCTGTCTAAATCTCATTTGTATGAACATCTGACTTTGGAAAAATCTTCAAGCAATTTAGCAGTTTCAGGACATCCATTTTATCAAGTTTCTGCTACAAGAAATGAAAAAATGAGACACTTGATTACTACAGGCAGACCAACCAAAGTCTTTGTTCCACCTTTTAAAACTAAATCACATTTTCACAGAGTTGAACAGTGTGTTAGGAATATTAACTTGGAGGAAAACAGACAAAAGCAAAACATTGATGGACATGGCTCTGATGATAGTAAAAATAAGATTAATGACAATGAGATTCATCAGTTTAACAAAAACAACTCCAATCAAGCAGCAGCTGTAACTTTCACAAAGTGTGAAGAAGAACCTTTAGATTTAATTACAAGTCTTCAGAATGCCAGAGATATACAGGATATGCGAATTAAGAAGAAACAAAGGCAACGCGTCTTTCCACAGCCAGGCAGTCTGTATCTTGCAAAAACATCCACTCTGCCTCGAATCTCTCTGAAAGCAGCAGTAGGAGGCCAAGTTCCCTCTGCGTGTTCTCATAAACAGCTGTATACGTATGGCGTTTCTAAACATTGCATAAAAATTAACAGCAAAAATGCAGAGTCTTTTCAGTTTCACACTGAAGATTATTTTGGTAAGGAAAGTTTATGG
ACTGGAAAAGGAATACAGTTGGCTGATGGTGGATGGCTCATACCCTCCAATGATGGAAAGGCTGGAAAAGAAGAATTTTATAGGGCTCTGTGTGACACTCCAGGTGTGGATCCAAAGCTTATTTCTAGAATTTGGGTTTATAATCACTATAGATGGATCATATGGAAACTGGCAGCTATGGAATGTGCCTTTCCTAAGGAATTTGCTAATAGATGCCTAAGCCCAGAAAGGGTGCTTCTTCAACTAAAATACAGATATGATACGGAAATTGATAGAAGCAGAAGATCGGCTATAAAAAAGATAATGGAAAGGGATGACACAGCTGCAAAAACACTTGTTCTCTGTGTTTCTGACATAATTTCATTGAGCGCAAATATATCTGAAACTTCTAGCAATAAAACTAGTAGTGCAGATACCCAAAAAGTGGCCATTATTGAACTTACAGATGGGTGGTATGCTGTTAAGGCCCAGTTAGATCCTCCCCTCTTAGCTGTCTTAAAGAATGGCAGACTGACAGTTGGTCAGAAGATTATTCTTCATGGAGCAGAACTGGTGGGCTCTCCTGATGCCTGTACACCTCTTGAAGCCCCAGAATCTCTTATGTTAAAGATTTCTGCTAACAGTACTCGGCCTGCTCGCTGGTATACCAAACTTGGATTCTTTCCTGACCCTAGACCTTTTCCTCTGCCCTTATCATCGCTTTTCAGTGATGGAGGAAATGTTGGTTGTGTTGATGTAATTATTCAAAGAGCATACCCTATACAGTGGATGGAGAAGACATCATCTGGATTATACATATTTCGCAATGAAAGAGAGGAAGAAAAGGAAGCAGCAAAATATGTGGAGGCCCAACAAAAGAGACTAGAAGCCTTATTCACTAAAATTCAGGAGGAATTTGAAGAACATGAAGAAAACACAACAAAACCATATTTACCATCACGTGCACTAACAAGACAGCAAGTTCGTGCTTTGCAAGATGGTGCAGAGCTTTATGAAG
CAGTGAAGAATGCAGCAGACCCAGCTTACCTTGAGGGTTATTTCAGTGAAGAGCAGTTAAGAGCCTTGAATAATCACAGGCAAATGTTGAATGATAAGAAACAAGCTCAGATCCAGTTGGAAATTAGGAAGGCCATGGAATCTGCTGAACAAAAGGAACAAGGTTTATCAAGGGATGTCACAACCGTGTGGAAGTTGCGTATTGTAAGCTATTCAAAAAAAGAAAAAGATTCAGTTATACTGAGTATTTGGCGTCCATCATCAGATTTATATTCTCTGTTAACAGAAGGAAAGAGATACAGAATTTATCATCTTGCAACTTCAAAATCTAAAAGTAAATCTGAAAGAGCTAACATACAGTTAGCAGCGACAAAAAAAACTCAGTATCAACAACTACCGGTTTCAGATGAAATTTTATTTCAGATTTACCAGCCACGGGAGCCCCTTCACTTCAGCAAATTTTTAGATCCAGACTTTCAGCCATCTTGTTCTGAGGTGGACCTAATAGGATTTGTCGTTTCTGTTGTGAAAAAAACAGGACTTGCCCCTTTCGTCTATTTGTCAGACGAATGTTACAATTTACTGGCAATAAAGTTTTGGATAGACCTTAATGAGGACATTATTAAGCCTCATATGTTAATTGCTGCAAGCAACCTCCAGTGGCGACCAGAATCCAAATCAGGCCTTCTTACTTTATTTGCTGGAGATTTTTCTGTGTTTTCTGCTAGTCCAAAAGAGGGCCACTTTCAAGAGACATTCAACAAAATGAAAAATACTGTTGAGAATATTGACATACTTTGCAATGAAGCAGAAAACAAGCTTATGCATATACTGCATGCAAATGATCCCAAGTGGTCCACCCCAACTAAAGACTGTACTTCAGGGCCGTACACTGCTCAAATCATTCCTGGTACAGGAAACAAGCTTCTGATGTCTTCTCCTAATTGTGAGATATATTATCAAAGTCCTTTATCACTTTGTATGGCCAAAAGGAAGTC
TGTTTCCACACCTGTCTCAGCCCAGATGACTTCAAAGTCTTGTAAAGGGGAGAAAGAGATTGATGACCAAAAGAACTGCAAAAAGAGAAGAGCCTTGGATTTCTTGAGTAGACTGCCTTTACCTCCACCTGTTAGTCCCATTTGTACATTTGTTTCTCCGGCTGCACAGAAGGCATTTCAGCCACCAAGGAGTTGTGGCACCAAATACGAAACACCCATAAAGAAAAAAGAACTGAATTCTCCTCAGATGACTCCATTTAAAAAATTCAATGAAATTTCTCTTTTGGAAAGTAATTCAATAGCTGACGAAGAACTTGCATTGATAAATACCCAAGCTCTTTTGTCTGGTTCAACAGGAGAAAAACAATTTATATCTGTCAGTGAATCCACTAGGACTGCTCCCACCAGTTCAGAAGATTATCTCAGACTGAAACGACGTTGTACTACATCTCTGATCAAAGAACAGGAGAGTTCCCAGGCCAGTACGGAAGAATGTGAGAAAAATAAGCAGGACACAATTACAACTAAAAAATATATCTAAGCATTTGCAAAGGCGACAATAAATTATTGACGCTTAACCTTTCCAGTTTATAAGACTGGAATATAATTTCAAACCACACATTAGTACTTATGTTGCACAATGAGAAAAGAAATTAGTTTCAAATTTACCTCAGCGTTTGTGTATCGGGCAAAAATCGTTTTGCCCGATTCCGTATTGGTATACTTTTGCTTCAGTTGCATATCTTAAAACTAAATGTAATTTATTAACTAATCAAGAAAAACATCTTTGGCTGAGCTCGGTGGCTCATGCCTGTAATCCCAACACTTTGAGAAGCTGAGGTGGGAGGAGTGCTTGAGGCCAGGAGTTCAAGACCAGCCTGGGCAACATAGGGAGACCCCCATCTTTACAAAGAAAAAAAAAAGGGGAAAAGAAAATCTTTTAAATCTTTGGATTTGATCACTACAAGTATTATTTTACAAGTGAAATAAACATACC
ATTTTCTTTTAGATTGTGTCATTAAATGGAATGAGGTCTCTTAGTACAGTTATTTTGATGCAGATAATTCCTTTTAGTTTAGCTACTATTTTAGGGGATTTTTTTTAGAGGTAACTCACTATGAAATAGTTCTCCTTAATGCAAATATGTTGGTTCTGCTATAGTTCCATCCTGTTCAAAAGTCAGGATGAATATGAAGAGTGGTGTTTCCTTTTGAGCAATTCTTCATCCTTAAGTCAGCATGATTATAAGAAAAATAGAACCCTCAGTGTAACTCTAATTCCTTTTTACTATTCCAGTGTGATCTCTGAAATTAAATTACTTCAACTAAAAATTCAAATACTTTAAATCAGAAGATTTCATAGTTAATTTATTTTTTTTTTCAACAAAATGGTCATCCAAACTCAAACTTGAGAAAATATCTTGCTTTCAAATTGGCACTGATT</TSeq_sequence>\n"
+ + "</TSeq>\n" + "\n" + "</TSeqSet>"));
+
+ waitForState(report, State.COMPLETED);
+
+ assertEquals(State.COMPLETED, runService.getState(runId));
+ System.out.println(report);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/9ca55d5c/taverna-platform-integration-tests/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/taverna-platform-integration-tests/src/test/resources/log4j.properties b/taverna-platform-integration-tests/src/test/resources/log4j.properties
new file mode 100644
index 0000000..6babb60
--- /dev/null
+++ b/taverna-platform-integration-tests/src/test/resources/log4j.properties
@@ -0,0 +1,11 @@
+#log4j.rootLogger=DEBUG, CONSOLE
+log4j.rootLogger=WARN, CONSOLE
+#log4j.rootLogger=ERROR, CONSOLE
+
+log4j.logger.uk.org.taverna.platform.execution=DEBUG
+
+# Default output to console
+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
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-engine/blob/9ca55d5c/taverna-platform-integration-tests/src/test/resources/security/tomcat_heater_certificate.pem
----------------------------------------------------------------------
diff --git a/taverna-platform-integration-tests/src/test/resources/security/tomcat_heater_certificate.pem b/taverna-platform-integration-tests/src/test/resources/security/tomcat_heater_certificate.pem
new file mode 100644
index 0000000..c729258
--- /dev/null
+++ b/taverna-platform-integration-tests/src/test/resources/security/tomcat_heater_certificate.pem
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDyDCCArCgAwIBAgIETlYTBzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCVUsxGzAZBgNV
+BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjETMBEGA1UEBxMKTWFuY2hlc3RlcjEhMB8GA1UEChMYVW5p
+dmVyc2l0eSBvZiBNYW5jaGVzdGVyMSMwIQYDVQQLExpTY2hvb2wgb2YgQ29tcHV0ZXIgU2NpZW5j
+ZTEcMBoGA1UEAxMTaGVhdGVyLmNzLm1hbi5hYy51azAeFw0xMTA4MjUwOTE2NTVaFw0yMTA4MjIw
+OTE2NTVaMIGlMQswCQYDVQQGEwJVSzEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRMwEQYD
+VQQHEwpNYW5jaGVzdGVyMSEwHwYDVQQKExhVbml2ZXJzaXR5IG9mIE1hbmNoZXN0ZXIxIzAhBgNV
+BAsTGlNjaG9vbCBvZiBDb21wdXRlciBTY2llbmNlMRwwGgYDVQQDExNoZWF0ZXIuY3MubWFuLmFj
+LnVrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1/TuezSNYFpD2NTtw5UGECCPwClV
+Om08Nca1aanOVxv5rcn4eUVbu6Btm/dqgiCeV8nCyu7nEPvWP+Kvktseikx3LZ08qKdDRLpNa68/
+WrjcbS6ICs2hphhqftHSpl0OPnWkQicbI7Z4uUdqmF6DsLDOLpRfiYhh9lZ0FM7PD3yt42GR5E2B
+j465IJQweZxLCsRKwuZlvOsWJxnx1MHVj7ZFBYl7HSBfEpvThyqKL5R7FOZW0zpG3+Y+S9HmfQYk
+BipXrrNS1+lsIwPU8jD31PBzVPBNxIeKYHxXCKLf+EBah/tAKSxIzUihxhh1pdNEPvUyy2zY9vyv
+1PfXd8Uk0wIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAtiPDBRlmjhFd9DP1NvbyfMApdjLufMLvr
+mzze3W6A4XUZj+kXR/Z3KYj84pWOnhe+Benvw5bIf2JM+sqIiSUA+TB8losx+SeY5hZ3lqEFY1wZ
+1qy47hH3rY98RdSAXlAhvGCEL/CktvIEHgaSlCmrOvK76ySwRCTYA9DJTWeB81R7bP7le2ewSg5c
+MY/Hy3VBkMGbVnZQoHhkUd7TIsPqD1SvYQDCug49JFsKsyrfep3nANAQO7uR8FYrCYtXj66z9ziO
+m0gZm+h/Rq8StgMrNwmi+3mGAgRJ6JKj4vAWJfyUSaOjLLf9u3BvrxVtQKCMSDGx25dBFlZXHIhE
+rONf
+-----END CERTIFICATE-----