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 2018/08/15 13:59:29 UTC

[1/8] incubator-taverna-language git commit: Change components package and clean unused imports throught the project

Repository: incubator-taverna-language
Updated Branches:
  refs/heads/cwlparser 9cd4b8781 -> 991224bd2


Change components package and clean unused imports throught the project


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/50b2caec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/50b2caec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/50b2caec

Branch: refs/heads/cwlparser
Commit: 50b2caec42c1fa289108526cf8f40b6331aee2cd
Parents: b8081fa
Author: Majdi Haouech <m....@criteo.com>
Authored: Wed Aug 8 00:43:18 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Wed Aug 8 00:43:18 2018 +0200

----------------------------------------------------------------------
 .../org/apache/taverna/scufl2/cwl/CWLParser.java  | 10 ++--------
 .../org/apache/taverna/scufl2/cwl/CWLReader.java  |  1 +
 .../org/apache/taverna/scufl2/cwl/Converter.java  |  4 +++-
 .../apache/taverna/scufl2/cwl/WorkflowParser.java |  2 ++
 .../org/apache/taverna/scufl2/cwl/YAMLHelper.java |  3 +++
 .../scufl2/cwl/components/CommandLineTool.java    |  5 ++++-
 .../taverna/scufl2/cwl/components/InputPort.java  |  2 +-
 .../taverna/scufl2/cwl/components/OutputPort.java |  2 +-
 .../taverna/scufl2/cwl/components/PortDetail.java |  4 +---
 .../taverna/scufl2/cwl/components/Process.java    |  2 +-
 .../scufl2/cwl/components/ProcessFactory.java     |  2 +-
 .../taverna/scufl2/cwl/components/Reference.java  |  3 +--
 .../taverna/scufl2/cwl/components/Step.java       |  3 +--
 .../scufl2/cwl/components/WorkflowProcess.java    |  5 +++--
 .../apache/taverna/scufl2/cwl/TestConverting.java |  4 ++--
 .../org/apache/taverna/scufl2/cwl/TestParser.java |  3 ---
 .../taverna/scufl2/cwl/TestWorkflowNesting.java   | 18 ++----------------
 .../taverna/scufl2/cwl/TestWorkflowProcess.java   |  4 ++++
 18 files changed, 33 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
index 63e70d1..3b3879c 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
@@ -22,16 +22,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.HashSet;
 
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-
 import com.fasterxml.jackson.databind.JsonNode;
 
+import org.apache.taverna.scufl2.cwl.components.*;
+
 public class CWLParser {
 
     private JsonNode cwlFile;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
index de9d799..1b5afc7 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
@@ -27,6 +27,7 @@ import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
 import org.apache.taverna.scufl2.api.io.ReaderException;
 
+import org.apache.taverna.scufl2.cwl.components.*;
 
 public class CWLReader implements WorkflowBundleReader {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
index 5cfd9ce..2f77d05 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -21,7 +21,6 @@ package org.apache.taverna.scufl2.cwl;
 import java.util.Set;
 import java.util.HashSet;
 import java.util.Map;
-import java.util.HashMap;
 
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.core.Processor;
@@ -37,6 +36,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 
+import org.apache.taverna.scufl2.cwl.components.Process;
+import org.apache.taverna.scufl2.cwl.components.*;
+
 public class Converter {
 
     private JsonNodeFactory jsonNodeFactory;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
index 2680bf4..24b5238 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
@@ -49,6 +49,8 @@ import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
 import org.apache.taverna.scufl2.api.io.WriterException;
 
+import org.apache.taverna.scufl2.cwl.components.*;
+
 public class WorkflowParser {
 
     private static final String FILE_NAME = "/hello_world.cwl";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
index 1b016f8..f745386 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
@@ -36,6 +36,9 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.TextNode;
 
+import org.apache.taverna.scufl2.cwl.components.Process;
+import org.apache.taverna.scufl2.cwl.components.*;
+
 public class YAMLHelper {
 
     public static final String ARRAY_SPLIT_BRACKETS = "\\[\\]";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
index dc5e16d..eca00fa 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 import java.util.Set;
 import java.util.Map;
@@ -28,6 +28,9 @@ import com.fasterxml.jackson.databind.JsonNode;
 import org.apache.taverna.scufl2.api.port.InputProcessorPort;
 import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
 
+
+import org.apache.taverna.scufl2.cwl.*;
+
 public class CommandLineTool extends Process {
 
     private final static String BASE_COMMAND = "baseCommand";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java
index 1d1522d..1b44a27 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 public class InputPort {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java
index c865e9c..ac7c139 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 public class OutputPort {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/PortDetail.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/PortDetail.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/PortDetail.java
index 53604e7..cbfdae9 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/PortDetail.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/PortDetail.java
@@ -17,15 +17,13 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 
 import java.util.ArrayList;
 
 public class PortDetail {
 
-
-
     private String id;
     private String label;
     private int depth;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
index 991df0a..74f2f5f 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 import java.util.HashSet;
 import java.util.Set;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/ProcessFactory.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/ProcessFactory.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/ProcessFactory.java
index 301d417..6fa5569 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/ProcessFactory.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/ProcessFactory.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 import com.fasterxml.jackson.databind.JsonNode;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
index 9d5d0c0..f51f48b 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
@@ -17,9 +17,8 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
-import com.fasterxml.jackson.databind.JsonNode;
 
 public class Reference extends Process {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
index 80ccf03..aab6b65 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
@@ -17,10 +17,9 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 
-import java.util.ArrayList;
 import java.util.Set;
 import java.util.HashSet;
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
index a8e6607..3a19d3a 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.taverna.scufl2.cwl;
+package org.apache.taverna.scufl2.cwl.components;
 
 import java.util.Set;
 import java.util.HashSet;
@@ -30,7 +30,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.apache.taverna.scufl2.api.core.Processor;
 import org.apache.taverna.scufl2.api.core.DataLink;
-import org.apache.taverna.scufl2.api.core.Workflow;
 
 import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
 import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
@@ -41,6 +40,8 @@ import org.apache.taverna.scufl2.api.port.ReceiverPort;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
+import org.apache.taverna.scufl2.cwl.*;
+
 public class WorkflowProcess extends Process {
 
     private CWLParser cwlParser;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
index 2b34a3c..56885b2 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
@@ -19,7 +19,6 @@
 package org.apache.taverna.scufl2.cwl;
 
 
-import org.junit.Before;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 
@@ -27,12 +26,13 @@ import org.yaml.snakeyaml.Yaml;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
 
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.core.Processor;
 
+import org.apache.taverna.scufl2.cwl.components.*;
+
 public class TestConverting {
     private static final String HELLO_WORLD_CWL = "/hello_world.cwl";
     private static final String WORKFLOW_WITH_COMMAND = "/workflow_with_command.cwl";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
index 20c494c..a4ea204 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
@@ -28,10 +28,8 @@ import static org.junit.Assert.assertEquals;
 
 import org.yaml.snakeyaml.Yaml;
 
-import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
 
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.core.Processor;
@@ -40,7 +38,6 @@ import org.apache.taverna.scufl2.api.core.DataLink;
 import org.apache.taverna.scufl2.api.common.NamedSet;
 
 import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
 import org.apache.taverna.scufl2.api.port.InputProcessorPort;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
index d0f3e88..e0a4330 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
@@ -19,12 +19,7 @@
 package org.apache.taverna.scufl2.cwl;
 
 
-import java.io.File;
-import java.io.IOException;
 import java.util.Set;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.HashMap;
 
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
@@ -33,19 +28,10 @@ import org.yaml.snakeyaml.Yaml;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
+import org.apache.taverna.scufl2.cwl.components.Process;
+import org.apache.taverna.scufl2.cwl.components.*;
 
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-
-import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 
 public class TestWorkflowNesting {
     private static final String HELLO_WORLD_CWL = "/hello_world.cwl";

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/50b2caec/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
index 4b3bba7..e622668 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
@@ -47,6 +47,10 @@ import org.apache.taverna.scufl2.api.io.WriterException;
 
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 
+import org.apache.taverna.scufl2.cwl.components.Process;
+import org.apache.taverna.scufl2.cwl.components.*;
+
+
 public class TestWorkflowProcess {
     private static final String HELLO_WORLD_CWL = "/hello_world.cwl";
     private static final String WORKFLOW_WITH_COMMAND = "/workflow_with_command.cwl";


[2/8] incubator-taverna-language git commit: Parse step outputs from the yaml file

Posted by st...@apache.org.
Parse step outputs from the yaml file

- The yaml parser used didn't support output inputs parsing


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/06de6305
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/06de6305
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/06de6305

Branch: refs/heads/cwlparser
Commit: 06de630547cce035e46d124bab8662f58839adff
Parents: 50b2cae
Author: Majdi Haouech <m....@criteo.com>
Authored: Wed Aug 8 02:05:47 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Wed Aug 8 02:05:47 2018 +0200

----------------------------------------------------------------------
 .../apache/taverna/scufl2/cwl/YAMLHelper.java   | 31 ++++++++++++++++++++
 1 file changed, 31 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/06de6305/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
index f745386..76652ea 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
@@ -125,9 +125,12 @@ public class YAMLHelper {
                 Process run = ProcessFactory.createProcess(runNode);
                 run.parse();  // Recursively parse nested process
                 Set<InputPort> inputs = processStepInput(stepNode.get(INPUTS));
+                Set<OutputPort> outputs = processStepOutput(stepNode.get(OUTPUTS));
                 step.setId(id);
                 step.setRun(run);
                 step.setInputs(inputs);
+                step.setOutputs(outputs);
+
                 result.add(step);
             }
         } else if(steps.isObject()) {
@@ -145,8 +148,10 @@ public class YAMLHelper {
                     step.setRun(run);
                 }
                 Set<InputPort> inputs = processStepInput(value.get(INPUTS));
+                Set<OutputPort> outputs = processStepOutput(value.get(OUTPUTS));
                 step.setId(id);
                 step.setInputs(inputs);
+                step.setOutputs(outputs);
 
                 result.add(step);
             }
@@ -183,6 +188,32 @@ public class YAMLHelper {
         return result;
     }
 
+    private Set<OutputPort> processStepOutput(JsonNode outputs) {
+        Set<OutputPort> result = new HashSet<>();
+        if(outputs == null) {
+            return result;
+        }
+        if (outputs.isArray()) {
+
+            for (JsonNode output : outputs) {
+                String id = output.get(ID).asText();
+
+                result.add(new OutputPort(id));
+            }
+        } else if (outputs.isObject()) {
+            Iterator<Entry<String, JsonNode>> iterator = outputs.fields();
+            while (iterator.hasNext()) {
+                Entry<String, JsonNode> entry = iterator.next();
+
+                String id = entry.getKey();
+
+                result.add(new OutputPort(id));
+            }
+        }
+
+        return result;
+    }
+
     /**
      * This method will go through CWL tool input or out puts and figure outs
      * their IDs and the respective depths


[6/8] incubator-taverna-language git commit: Add name attribute to all Processes

Posted by st...@apache.org.
Add name attribute to all Processes

- Override equals and hashCode for Step component


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/9d34b4ab
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/9d34b4ab
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/9d34b4ab

Branch: refs/heads/cwlparser
Commit: 9d34b4abe4f89532ce67bd20086d21abf32e22ff
Parents: f089bd8
Author: Majdi Haouech <m....@criteo.com>
Authored: Sat Aug 11 12:04:24 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Sat Aug 11 12:04:24 2018 +0200

----------------------------------------------------------------------
 .../scufl2/cwl/components/CommandLineTool.java       |  1 +
 .../taverna/scufl2/cwl/components/Process.java       | 11 ++++++++++-
 .../taverna/scufl2/cwl/components/Reference.java     |  2 ++
 .../apache/taverna/scufl2/cwl/components/Step.java   | 15 +++++++++++++++
 .../scufl2/cwl/components/WorkflowProcess.java       |  7 ++++++-
 5 files changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/9d34b4ab/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
index eca00fa..4270f46 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
@@ -46,6 +46,7 @@ public class CommandLineTool extends Process {
     private Map<String, OutputProcessorPort> processorOutputs = new HashMap<>();
 
     public CommandLineTool(JsonNode node) {
+        this.name = "";
         this.node = node;
         this.cwlParser = new CWLParser(node);
         this.parse();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/9d34b4ab/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
index 6276278..c152b12 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
@@ -30,7 +30,7 @@ public abstract class Process {
     protected Set<InputPort> insideInputPorts = new HashSet<>();
 
     protected Set<OutputPort> insideOutputPorts = new HashSet<>();
-
+    protected String name;
 
     public abstract void parse();
 
@@ -66,4 +66,13 @@ public abstract class Process {
       this.insideOutputPorts = insideOutputPorts;
     }
 
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/9d34b4ab/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
index f51f48b..0adb161 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
@@ -26,10 +26,12 @@ public class Reference extends Process {
 
     public Reference() {
         source = "";
+        name = "";
     }
 
     public Reference(String src) {
         this.source = src;
+        this.name = "";
     }
 
     public void parse() {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/9d34b4ab/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
index aab6b65..8ac65c2 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
@@ -35,6 +35,7 @@ public class Step {
     public Step() {
         inputs = new HashSet<>();
         outputs = new HashSet<>();
+        id = "";
     }
 
     public String getId() {
@@ -81,4 +82,18 @@ public class Step {
         return "Step " + id + ": run = " + run;
     }
 
+    @Override
+    public boolean equals(Object obj) {
+        if(this == obj) return true;
+        if(obj == null) return false;
+        if(this.getClass() != obj.getClass()) return false;
+
+        Step other = (Step) obj;
+        return other.id.equals(id) && other.run.getName().equals(run.getName()); // && other.inputs == inputs && other.outputs == outputs;
+    }
+
+    @Override
+    public int hashCode() {
+        return id.hashCode() * 13 + run.getName().hashCode() * 17;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/9d34b4ab/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
index 263455d..617aab6 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
@@ -57,8 +57,12 @@ public class WorkflowProcess extends Process {
 
     private Converter converter = new Converter();
 
-    public WorkflowProcess(InputStream stream) {
+    public WorkflowProcess() {
+        this.name = "";
+    }
 
+    public WorkflowProcess(InputStream stream) {
+        this();
         Yaml reader = new Yaml();
         ObjectMapper mapper = new ObjectMapper();
         JsonNode node = mapper.valueToTree(reader.load(stream));
@@ -68,6 +72,7 @@ public class WorkflowProcess extends Process {
     }
 
     public WorkflowProcess(JsonNode node) {
+        this();
         cwlParser = new CWLParser(node);
         this.parse();
     }


[3/8] incubator-taverna-language git commit: Create a mirror process for each new nested workflow

Posted by st...@apache.org.
Create a mirror process for each new nested workflow


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/d163547b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/d163547b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/d163547b

Branch: refs/heads/cwlparser
Commit: d163547bc95c5abb3aabe57995bfee45444571a7
Parents: 06de630
Author: Majdi Haouech <m....@criteo.com>
Authored: Wed Aug 8 02:07:13 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Wed Aug 8 02:07:13 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/taverna/scufl2/cwl/Converter.java  | 13 +++++++++++++
 .../apache/taverna/scufl2/cwl/components/Process.java  |  4 ++--
 2 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/d163547b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
index 2f77d05..4134783 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -179,10 +179,14 @@ public class Converter {
         Set<OutputWorkflowPort> outputs = new HashSet<>(workflowProcess.getWorkflowOutputs().values());
         workflow.setInputPorts(inputs);
         workflow.setOutputPorts(outputs);
+        Set<InputPort> inputPorts = workflowProcess.getInputPorts();
+        Set<OutputPort> outputPorts = workflowProcess.getOutputPorts();
 
         for(Process process: workflowProcess.getProcesses()) {
             if(process instanceof WorkflowProcess) {
                 Workflow childWorkflow = convertWorkflowProcess((WorkflowProcess) process, bundle); // TODO: Add nested relationship
+                Processor processor = new Processor(workflow, childWorkflow.getName()); // TODO: Check if we want the processor to have the same name as the childworkflow
+                createProcessPortsFromWorkflow(processor, childWorkflow);
                 bundle.getWorkflows().add(childWorkflow);
             } else if(process instanceof CommandLineTool) {
                 Processor processor = convertCommandLineTool((CommandLineTool) process);
@@ -197,6 +201,15 @@ public class Converter {
         return workflow;
     }
 
+    public void createProcessPortsFromWorkflow(Processor processor, Workflow workflow) {
+        for(InputWorkflowPort inputWorkflowPort: workflow.getInputPorts()) {
+            processor.getInputPorts().add(new InputProcessorPort(processor, inputWorkflowPort.getName()));
+        }
+        for(OutputWorkflowPort outputWorkflowPort: workflow.getOutputPorts()) {
+            processor.getOutputPorts().add(new OutputProcessorPort(processor, outputWorkflowPort.getName()));
+        }
+    }
+
     public Processor convertCommandLineTool(CommandLineTool command) {
         Processor processor = new Processor(null, command.getBaseCommand());
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/d163547b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
index 74f2f5f..5447e8c 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
@@ -24,8 +24,8 @@ import java.util.Set;
 
 public abstract class Process {
 
-    private Set<InputPort> inputPorts = new HashSet<>();
-    private Set<OutputPort> outputPorts = new HashSet<>();
+    protected Set<InputPort> inputPorts = new HashSet<>();
+    protected Set<OutputPort> outputPorts = new HashSet<>();
 
 
     public abstract void parse();


[4/8] incubator-taverna-language git commit: Add support for datalinks while converting a Workflow

Posted by st...@apache.org.
Add support for datalinks while converting a Workflow


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/2c17fa7e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/2c17fa7e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/2c17fa7e

Branch: refs/heads/cwlparser
Commit: 2c17fa7e41006b071494f3e812f3a2b9efa411da
Parents: d163547
Author: Majdi Haouech <m....@criteo.com>
Authored: Thu Aug 9 22:23:48 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Thu Aug 9 22:23:48 2018 +0200

----------------------------------------------------------------------
 .../apache/taverna/scufl2/cwl/Converter.java    | 35 +++++++++++++++++---
 .../taverna/scufl2/cwl/components/Process.java  | 20 +++++++++++
 .../scufl2/cwl/components/WorkflowProcess.java  |  2 ++
 .../taverna/scufl2/cwl/TestConverting.java      |  6 ++++
 .../src/test/resources/hello_world.cwl          |  2 +-
 5 files changed, 59 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/2c17fa7e/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
index 4134783..5637ced 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -22,6 +22,8 @@ import java.util.Set;
 import java.util.HashSet;
 import java.util.Map;
 
+import org.apache.taverna.scufl2.api.common.NamedSet;
+import org.apache.taverna.scufl2.api.core.DataLink;
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.core.Processor;
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
@@ -36,6 +38,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 
+import org.apache.taverna.scufl2.api.port.ReceiverPort;
+import org.apache.taverna.scufl2.api.port.SenderPort;
 import org.apache.taverna.scufl2.cwl.components.Process;
 import org.apache.taverna.scufl2.cwl.components.*;
 
@@ -179,23 +183,44 @@ public class Converter {
         Set<OutputWorkflowPort> outputs = new HashSet<>(workflowProcess.getWorkflowOutputs().values());
         workflow.setInputPorts(inputs);
         workflow.setOutputPorts(outputs);
-        Set<InputPort> inputPorts = workflowProcess.getInputPorts();
-        Set<OutputPort> outputPorts = workflowProcess.getOutputPorts();
+        Set<InputPort> inputPorts = workflowProcess.getInsideInputPorts();
+        Set<OutputPort> outputPorts = workflowProcess.getInsideOutputPorts();
+
+        NamedSet<InputProcessorPort> inputProcessorPorts = new NamedSet<>();
+        NamedSet<OutputProcessorPort> outputProcessorPorts = new NamedSet<>();
 
         for(Process process: workflowProcess.getProcesses()) {
+            Processor processor;
             if(process instanceof WorkflowProcess) {
                 Workflow childWorkflow = convertWorkflowProcess((WorkflowProcess) process, bundle); // TODO: Add nested relationship
-                Processor processor = new Processor(workflow, childWorkflow.getName()); // TODO: Check if we want the processor to have the same name as the childworkflow
+                processor = new Processor(workflow, childWorkflow.getName()); // TODO: Check if we want the processor to have the same name as the childworkflow
                 createProcessPortsFromWorkflow(processor, childWorkflow);
                 bundle.getWorkflows().add(childWorkflow);
             } else if(process instanceof CommandLineTool) {
-                Processor processor = convertCommandLineTool((CommandLineTool) process);
+                processor = convertCommandLineTool((CommandLineTool) process);
                 workflow.getProcessors().add(processor);
             } else {
                 assert(process instanceof Reference);
-                Processor processor = convertReference((Reference) process);
+                processor = convertReference((Reference) process);
                 workflow.getProcessors().add(processor);
             }
+            inputProcessorPorts.addAll(processor.getInputPorts());
+            outputProcessorPorts.addAll(processor.getOutputPorts());
+        }
+
+        // DataLinks
+        for(InputPort port: inputPorts) {
+            String senderName = port.getSource();
+            String destName = port.getName();
+            SenderPort senderPort = outputProcessorPorts.getByName(senderName);
+            if(senderPort == null) { // Source is one of the Workflow inputs
+                senderPort = workflow.getInputPorts().getByName(senderName);
+            }
+            ReceiverPort receiverPort = inputProcessorPorts.getByName(destName);
+            if(receiverPort == null) { // Destination is one of the Workflow outputs
+                receiverPort = workflow.getOutputPorts().getByName(destName);
+            }
+            new DataLink(workflow, senderPort, receiverPort);
         }
 
         return workflow;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/2c17fa7e/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
index 5447e8c..6276278 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
@@ -27,6 +27,10 @@ public abstract class Process {
     protected Set<InputPort> inputPorts = new HashSet<>();
     protected Set<OutputPort> outputPorts = new HashSet<>();
 
+    protected Set<InputPort> insideInputPorts = new HashSet<>();
+
+    protected Set<OutputPort> insideOutputPorts = new HashSet<>();
+
 
     public abstract void parse();
 
@@ -46,4 +50,20 @@ public abstract class Process {
         this.outputPorts = outputs;
     }
 
+    public Set<InputPort> getInsideInputPorts() {
+      return insideInputPorts;
+    }
+
+    public void setInsideInputPorts(Set<InputPort> insideInputPorts) {
+      this.insideInputPorts = insideInputPorts;
+    }
+
+    public Set<OutputPort> getInsideOutputPorts() {
+      return insideOutputPorts;
+    }
+
+    public void setInsideOutputPorts(Set<OutputPort> insideOutputPorts) {
+      this.insideOutputPorts = insideOutputPorts;
+    }
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/2c17fa7e/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
index 3a19d3a..263455d 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
@@ -104,6 +104,8 @@ public class WorkflowProcess extends Process {
             Process process = step.getRun();
             process.setInputPorts(step.getInputs());
             process.setOutputPorts(step.getOutputs());
+            insideInputPorts.addAll(step.getInputs());
+            insideOutputPorts.addAll(step.getOutputs());
             result.add(process);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/2c17fa7e/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
index 56885b2..a6a803f 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
@@ -19,6 +19,7 @@
 package org.apache.taverna.scufl2.cwl;
 
 
+import org.apache.taverna.scufl2.api.core.DataLink;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 
@@ -86,5 +87,10 @@ public class TestConverting {
         Processor processor = workflow.getProcessors().iterator().next();
         assertEquals(1, processor.getInputPorts().size());
         assertEquals(0, processor.getOutputPorts().size());
+
+        assertEquals(1, workflow.getDataLinks().size());
+        DataLink dataLink = workflow.getDataLinks().iterator().next();
+        assertEquals("name", dataLink.getReceivesFrom().getName());
+        assertEquals("text", dataLink.getSendsTo().getName());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/2c17fa7e/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/resources/hello_world.cwl b/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
index 4207afa..eee01dd 100644
--- a/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
+++ b/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
@@ -32,6 +32,6 @@ steps:
 
     inputs:
       - id: text
-        source: "#x/name"
+        source: "name"
 
     outputs: []


[8/8] incubator-taverna-language git commit: Parse step outputs and support DataLink CWL to Taverna conversion

Posted by st...@apache.org.
Parse step outputs and support DataLink CWL to Taverna conversion

Merge branch 'pr-42' into cwlparser

Contributed by Majdi Haouech (ICLA on file)

See #42

Signed-off-by: Stian Soiland-Reyes <st...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/991224bd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/991224bd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/991224bd

Branch: refs/heads/cwlparser
Commit: 991224bd23be752922ce982977628a5a29869a1c
Parents: 9cd4b87 bebd694
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Aug 15 14:59:11 2018 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Aug 15 14:59:11 2018 +0100

----------------------------------------------------------------------
 .../apache/taverna/scufl2/cwl/CWLParser.java    | 11 +--
 .../apache/taverna/scufl2/cwl/CWLReader.java    |  1 +
 .../apache/taverna/scufl2/cwl/Converter.java    | 52 ++++++++++++-
 .../taverna/scufl2/cwl/TavernaConverter.java    | 81 ++++++++++++++++++++
 .../taverna/scufl2/cwl/WorkflowParser.java      |  6 ++
 .../apache/taverna/scufl2/cwl/YAMLHelper.java   | 38 +++++++++
 .../scufl2/cwl/components/CommandLineTool.java  |  6 +-
 .../scufl2/cwl/components/InputPort.java        |  2 +-
 .../scufl2/cwl/components/OutputPort.java       |  2 +-
 .../scufl2/cwl/components/PortDetail.java       |  4 +-
 .../taverna/scufl2/cwl/components/Process.java  | 35 ++++++++-
 .../scufl2/cwl/components/ProcessFactory.java   |  2 +-
 .../scufl2/cwl/components/Reference.java        |  5 +-
 .../taverna/scufl2/cwl/components/Step.java     | 18 ++++-
 .../scufl2/cwl/components/WorkflowProcess.java  | 14 +++-
 .../taverna/scufl2/cwl/TestConverting.java      | 14 +++-
 .../apache/taverna/scufl2/cwl/TestParser.java   |  3 -
 .../scufl2/cwl/TestTavernaConverter.java        | 80 +++++++++++++++++++
 .../taverna/scufl2/cwl/TestWorkflowNesting.java | 21 ++---
 .../taverna/scufl2/cwl/TestWorkflowProcess.java |  5 ++
 .../src/test/resources/hello_world.cwl          |  2 +-
 .../test/resources/workflow_with_workflow.cwl   |  4 +-
 22 files changed, 354 insertions(+), 52 deletions(-)
----------------------------------------------------------------------



[5/8] incubator-taverna-language git commit: Use explicit imports instead of wildcards. Add minor test change.

Posted by st...@apache.org.
Use explicit imports instead of wildcards. Add minor test change.


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/f089bd8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/f089bd8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/f089bd8a

Branch: refs/heads/cwlparser
Commit: f089bd8aa657c343b91f8c031d51260b98b3bb9c
Parents: 2c17fa7
Author: Majdi Haouech <m....@criteo.com>
Authored: Fri Aug 10 17:46:23 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Fri Aug 10 17:46:23 2018 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/taverna/scufl2/cwl/CWLParser.java   | 3 ++-
 .../main/java/org/apache/taverna/scufl2/cwl/CWLReader.java   | 2 +-
 .../main/java/org/apache/taverna/scufl2/cwl/Converter.java   | 8 +++++++-
 .../java/org/apache/taverna/scufl2/cwl/WorkflowParser.java   | 6 +++++-
 .../main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java  | 6 +++++-
 .../java/org/apache/taverna/scufl2/cwl/TestConverting.java   | 6 +++++-
 .../org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java   | 5 ++++-
 .../org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java   | 3 ++-
 .../src/test/resources/workflow_with_workflow.cwl            | 4 ++--
 9 files changed, 33 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
index 3b3879c..fd5f9c1 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
@@ -24,7 +24,8 @@ import java.util.HashSet;
 
 import com.fasterxml.jackson.databind.JsonNode;
 
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.PortDetail;
 
 public class CWLParser {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
index 1b5afc7..8f0f664 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLReader.java
@@ -27,7 +27,7 @@ import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
 import org.apache.taverna.scufl2.api.io.ReaderException;
 
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
 
 public class CWLReader implements WorkflowBundleReader {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
index 5637ced..79d4e24 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -41,7 +41,13 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import org.apache.taverna.scufl2.api.port.ReceiverPort;
 import org.apache.taverna.scufl2.api.port.SenderPort;
 import org.apache.taverna.scufl2.cwl.components.Process;
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.PortDetail;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.InputPort;
+import org.apache.taverna.scufl2.cwl.components.OutputPort;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
+import org.apache.taverna.scufl2.cwl.components.CommandLineTool;
+import org.apache.taverna.scufl2.cwl.components.Reference;
 
 public class Converter {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
index 24b5238..9191806 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/WorkflowParser.java
@@ -49,7 +49,11 @@ import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
 import org.apache.taverna.scufl2.api.io.WriterException;
 
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.PortDetail;
+import org.apache.taverna.scufl2.cwl.components.InputPort;
+import org.apache.taverna.scufl2.cwl.components.OutputPort;
+
 
 public class WorkflowParser {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
index 76652ea..6561c59 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
@@ -37,7 +37,11 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.TextNode;
 
 import org.apache.taverna.scufl2.cwl.components.Process;
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.PortDetail;
+import org.apache.taverna.scufl2.cwl.components.InputPort;
+import org.apache.taverna.scufl2.cwl.components.OutputPort;
+import org.apache.taverna.scufl2.cwl.components.ProcessFactory;
 
 public class YAMLHelper {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
index a6a803f..ce57b96 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
@@ -32,7 +32,8 @@ import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.core.Workflow;
 import org.apache.taverna.scufl2.api.core.Processor;
 
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
+import org.apache.taverna.scufl2.cwl.components.ProcessFactory;
 
 public class TestConverting {
     private static final String HELLO_WORLD_CWL = "/hello_world.cwl";
@@ -88,6 +89,9 @@ public class TestConverting {
         assertEquals(1, processor.getInputPorts().size());
         assertEquals(0, processor.getOutputPorts().size());
 
+        String processorPortName = processor.getInputPorts().iterator().next().getName();
+        assertEquals("text", processorPortName);
+
         assertEquals(1, workflow.getDataLinks().size());
         DataLink dataLink = workflow.getDataLinks().iterator().next();
         assertEquals("name", dataLink.getReceivesFrom().getName());

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
index e0a4330..a4ea652 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowNesting.java
@@ -30,7 +30,10 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.apache.taverna.scufl2.cwl.components.Process;
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.ProcessFactory;
+import org.apache.taverna.scufl2.cwl.components.CommandLineTool;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
+import org.apache.taverna.scufl2.cwl.components.Reference;
 
 
 public class TestWorkflowNesting {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
index e622668..6ff449c 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestWorkflowProcess.java
@@ -48,7 +48,8 @@ import org.apache.taverna.scufl2.api.io.WriterException;
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 
 import org.apache.taverna.scufl2.cwl.components.Process;
-import org.apache.taverna.scufl2.cwl.components.*;
+import org.apache.taverna.scufl2.cwl.components.ProcessFactory;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
 
 
 public class TestWorkflowProcess {

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/f089bd8a/taverna-scufl2-cwl/src/test/resources/workflow_with_workflow.cwl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/resources/workflow_with_workflow.cwl b/taverna-scufl2-cwl/src/test/resources/workflow_with_workflow.cwl
index 58323c5..7abca5e 100644
--- a/taverna-scufl2-cwl/src/test/resources/workflow_with_workflow.cwl
+++ b/taverna-scufl2-cwl/src/test/resources/workflow_with_workflow.cwl
@@ -25,7 +25,7 @@ inputs:
 outputs:
   download:
     type: File
-    outputSource:  "#step1/curl"
+    outputSource:  "curl"
 
 steps:
   step1:
@@ -40,7 +40,7 @@ steps:
           run: example.cwl
           inputs:
             - id: text
-              source: "#x/name"
+              source: "name"
           outputs: []
     in:
       text: message


[7/8] incubator-taverna-language git commit: Create a Taverna to Custom CWL Objects converter

Posted by st...@apache.org.
Create a Taverna to Custom CWL Objects converter

- Convert basic workflow, process, input and outputs


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/bebd694f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/bebd694f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/bebd694f

Branch: refs/heads/cwlparser
Commit: bebd694fb8bda54160f43b7049a3d16585f69ad7
Parents: 9d34b4a
Author: Majdi Haouech <m....@criteo.com>
Authored: Sat Aug 11 12:06:12 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Sat Aug 11 12:06:12 2018 +0200

----------------------------------------------------------------------
 .../taverna/scufl2/cwl/TavernaConverter.java    | 81 ++++++++++++++++++++
 .../scufl2/cwl/TestTavernaConverter.java        | 80 +++++++++++++++++++
 2 files changed, 161 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/bebd694f/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/TavernaConverter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/TavernaConverter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/TavernaConverter.java
new file mode 100644
index 0000000..da1ece3
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/TavernaConverter.java
@@ -0,0 +1,81 @@
+package org.apache.taverna.scufl2.cwl;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import org.apache.taverna.scufl2.api.common.NamedSet;
+import org.apache.taverna.scufl2.api.core.DataLink;
+import org.apache.taverna.scufl2.api.core.Processor;
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.port.InputProcessorPort;
+import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.SenderPort;
+import org.apache.taverna.scufl2.cwl.components.InputPort;
+import org.apache.taverna.scufl2.cwl.components.OutputPort;
+import org.apache.taverna.scufl2.cwl.components.Reference;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
+
+public class TavernaConverter {
+
+    public WorkflowProcess convertWorkflow(Workflow workflow) {
+        WorkflowProcess process = new WorkflowProcess();
+        process.setName(workflow.getName());
+        Set<InputPort> inputs = convertInputPorts(workflow);
+        Set<OutputPort> outputs = convertOutputPorts(workflow);
+
+        process.setInputPorts(inputs);
+        process.setOutputPorts(outputs);
+
+        return process;
+    }
+
+    public Set<InputPort> convertInputPorts(Workflow workflow) {
+        Set<InputPort> result = new HashSet<>();
+        for(InputWorkflowPort workflowPort: workflow.getInputPorts()) {
+            InputPort port = new InputPort(workflowPort.getName(), "");
+            result.add(port);
+        }
+        return result;
+    }
+
+    public Set<OutputPort> convertOutputPorts(Workflow workflow) {
+        Set<OutputPort> result = new HashSet<>();
+        for(OutputWorkflowPort workflowPort: workflow.getOutputPorts()) {
+            OutputPort port = new OutputPort(workflowPort.getName());
+            result.add(port);
+        }
+        return result;
+    }
+
+    public Set<Step> convertProcessors(Workflow workflow) {
+        Set<Step> result = new HashSet<>();
+        NamedSet<Processor> processors = workflow.getProcessors();
+        Set<DataLink> dataLinks = workflow.getDataLinks();
+        Map<String, SenderPort> portNameToSource = new HashMap<>();
+        for(DataLink link: dataLinks) {
+            portNameToSource.put(link.getSendsTo().getName(), link.getReceivesFrom());
+        }
+
+        for(Processor processor: processors) {
+            Step step = convertProcessor(processor, portNameToSource);
+            result.add(step);
+        }
+        return result;
+    }
+
+    public Step convertProcessor(Processor processor, Map<String, SenderPort> portNameToSource) {
+        Step step = new Step();
+        step.setRun(new Reference(processor.getName())); // TODO: Support nested steps. Check name value.
+        for(InputProcessorPort port: processor.getInputPorts()) {
+            InputPort stepPort = new InputPort();
+            stepPort.setName(port.getName());
+            SenderPort senderPort = portNameToSource.get(port.getName());
+            stepPort.setSource(senderPort.getName());
+            step.getInputs().add(stepPort);
+        }
+        return step;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/bebd694f/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestTavernaConverter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestTavernaConverter.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestTavernaConverter.java
new file mode 100644
index 0000000..14bb8a0
--- /dev/null
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestTavernaConverter.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.taverna.scufl2.cwl;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.apache.taverna.scufl2.api.core.Processor;
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
+import org.apache.taverna.scufl2.cwl.components.InputPort;
+import org.apache.taverna.scufl2.cwl.components.Reference;
+import org.apache.taverna.scufl2.cwl.components.Step;
+import org.apache.taverna.scufl2.cwl.components.WorkflowProcess;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+
+public class TestTavernaConverter {
+
+    @Test
+    public void testWorkflowToWorkflowProcess() {
+        Workflow workflow = new Workflow();
+        workflow.setName("workflowName");
+        workflow.getInputPorts().add(new InputWorkflowPort(workflow, "input1"));
+        workflow.getInputPorts().add(new InputWorkflowPort(workflow, "input2"));
+        workflow.getOutputPorts().add(new OutputWorkflowPort(workflow, "output"));
+
+        TavernaConverter converter = new TavernaConverter();
+
+        WorkflowProcess workflowProcess = converter.convertWorkflow(workflow);
+        assertEquals(workflow.getInputPorts().size(), workflowProcess.getInputPorts().size());
+        assertEquals(workflow.getOutputPorts().size(), workflowProcess.getOutputPorts().size());
+
+        Set<String> expectedInputNames = workflow.getInputPorts().stream().map(InputWorkflowPort::getName).collect(Collectors.toSet());
+        Set<String> convertedInputNames = workflowProcess.getInputPorts().stream().map(InputPort::getName).collect(Collectors.toSet());
+
+        assertEquals(expectedInputNames, convertedInputNames);
+
+        assertEquals("output", workflowProcess.getOutputPorts().iterator().next().getName());
+    }
+
+    @Test
+    public void testProcessorsToSteps() {
+        Workflow workflow = new Workflow();
+        workflow.setName("workflowName");
+        workflow.getProcessors().add(new Processor(workflow, "processor1"));
+        workflow.getProcessors().add(new Processor(workflow, "processor2"));
+
+        Step step1 = new Step();
+        step1.setRun(new Reference("processor1"));
+        Step step2 = new Step();
+        step2.setRun(new Reference("processor2"));
+        Set<Step> steps = new HashSet<>();
+        steps.add(step1);
+        steps.add(step2);
+
+        TavernaConverter converter = new TavernaConverter();
+        Set<Step> convertedSteps = converter.convertProcessors(workflow);
+
+        assertEquals(steps, convertedSteps);
+    }
+}