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/06 15:22:59 UTC
[11/13] incubator-taverna-language git commit: Create input/output
port adapted to all step types (workflow or other)
Create input/output port adapted to all step types (workflow or other)
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/ba5ea1b6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/ba5ea1b6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/ba5ea1b6
Branch: refs/heads/master
Commit: ba5ea1b6ea02cac618d145b52b2523a63546d8be
Parents: 38d1fad
Author: Majdi Haouech <m....@criteo.com>
Authored: Sun Aug 5 20:09:40 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Sun Aug 5 20:11:14 2018 +0200
----------------------------------------------------------------------
.../apache/taverna/scufl2/cwl/Converter.java | 12 ++---
.../taverna/scufl2/cwl/WorkflowParser.java | 18 +++----
.../apache/taverna/scufl2/cwl/YAMLHelper.java | 12 ++---
.../scufl2/cwl/components/CommandLineTool.java | 2 +-
.../scufl2/cwl/components/InputPort.java | 53 +++++++++++++++++++
.../scufl2/cwl/components/OutputPort.java | 41 +++++++++++++++
.../taverna/scufl2/cwl/components/Process.java | 30 ++++++++---
.../scufl2/cwl/components/Reference.java | 2 +-
.../taverna/scufl2/cwl/components/Step.java | 20 ++++----
.../scufl2/cwl/components/StepInput.java | 54 --------------------
.../scufl2/cwl/components/StepOutput.java | 41 ---------------
.../scufl2/cwl/components/WorkflowProcess.java | 6 +--
12 files changed, 153 insertions(+), 138 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 086d9dd..6bfe77d 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
@@ -63,17 +63,17 @@ public class Converter {
Processor processor = new Processor(null, step.getId());
// Convert input ports
Set<InputProcessorPort> processorInputs = new HashSet<>();
- Set<StepInput> inputs = step.getInputs();
- for(StepInput input: inputs) {
- InputProcessorPort port = new InputProcessorPort(processor, input.getId());
+ Set<InputPort> inputs = step.getInputs();
+ for(InputPort input: inputs) {
+ InputProcessorPort port = new InputProcessorPort(processor, input.getName());
processorInputs.add(port);
}
processor.setInputPorts(processorInputs);
// Convert output ports
Set<OutputProcessorPort> processorOutputs = new HashSet<>();
- Set<StepOutput> outputs = step.getOutputs();
- for(StepOutput output: outputs) {
- OutputProcessorPort port = new OutputProcessorPort(processor, output.getId());
+ Set<OutputPort> outputs = step.getOutputs();
+ for(OutputPort output: outputs) {
+ OutputProcessorPort port = new OutputProcessorPort(processor, output.getName());
processorOutputs.add(port);
}
processor.setOutputPorts(processorOutputs);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 b66991c..2680bf4 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
@@ -78,7 +78,7 @@ public class WorkflowParser {
parseOutputs();
Set<Step> cwlSteps = cwlParser.parseSteps();
parseProcessors(cwlSteps);
- parseDataLinks(cwlSteps);
+// parseDataLinks(cwlSteps);
Workflow workflow = new Workflow();
Set<InputWorkflowPort> inputs = new HashSet<>(workflowInputs.values());
@@ -137,20 +137,20 @@ public class WorkflowParser {
Processor processor = converter.convertStepToProcessor(step);
workflowProcessors.put(step.getId(), processor);
- for(StepInput stepInput: step.getInputs()) {
- InputProcessorPort processorPort = new InputProcessorPort(processor, stepInput.getId());
- processorInputs.put(stepInput.getId(), processorPort);
+ for(InputPort stepInput: step.getInputs()) {
+ InputProcessorPort processorPort = new InputProcessorPort(processor, stepInput.getName());
+ processorInputs.put(stepInput.getName(), processorPort);
}
- for(StepOutput stepOutput: step.getOutputs()) {
- OutputProcessorPort processorPort = new OutputProcessorPort(processor, stepOutput.getId());
- processorOutputs.put(stepOutput.getId(), processorPort);
+ for(OutputPort stepOutput: step.getOutputs()) {
+ OutputProcessorPort processorPort = new OutputProcessorPort(processor, stepOutput.getName());
+ processorOutputs.put(stepOutput.getName(), processorPort);
}
}
}
public void parseDataLinks(Set<Step> cwlSteps) {
for(Step step: cwlSteps) {
- for(StepInput stepInput: step.getInputs()) {
+ for(InputPort stepInput: step.getInputs()) {
String[] sourcePath = stepInput.getSource().split("/");
String source = sourcePath[sourcePath.length-1];
source = source.replace("#", "");
@@ -163,7 +163,7 @@ public class WorkflowParser {
if(sender == null) {
throw new NullPointerException("Cannot find sender port with name: " + source);
}
- String receiverId = stepInput.getId();
+ String receiverId = stepInput.getName();
ReceiverPort receiver = workflowOutputs.get(receiverId);
if(receiver == null) {
receiver = processorInputs.get(receiverId);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 c9b10dc..1b016f8 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
@@ -121,7 +121,7 @@ public class YAMLHelper {
JsonNode runNode = stepNode.get(RUN);
Process run = ProcessFactory.createProcess(runNode);
run.parse(); // Recursively parse nested process
- Set<StepInput> inputs = processStepInput(stepNode.get(INPUTS));
+ Set<InputPort> inputs = processStepInput(stepNode.get(INPUTS));
step.setId(id);
step.setRun(run);
step.setInputs(inputs);
@@ -141,7 +141,7 @@ public class YAMLHelper {
run.parse();
step.setRun(run);
}
- Set<StepInput> inputs = processStepInput(value.get(INPUTS));
+ Set<InputPort> inputs = processStepInput(value.get(INPUTS));
step.setId(id);
step.setInputs(inputs);
@@ -152,9 +152,9 @@ public class YAMLHelper {
return result;
}
- private Set<StepInput> processStepInput(JsonNode inputs) {
+ private Set<InputPort> processStepInput(JsonNode inputs) {
- Set<StepInput> result = new HashSet<>();
+ Set<InputPort> result = new HashSet<>();
if(inputs == null) {
return result;
}
@@ -164,7 +164,7 @@ public class YAMLHelper {
String id = input.get(ID).asText();
String source = input.get(SOURCE).asText();
- result.add(new StepInput(id, source));
+ result.add(new InputPort(id, source));
}
} else if (inputs.isObject()) {
Iterator<Entry<String, JsonNode>> iterator = inputs.fields();
@@ -174,7 +174,7 @@ public class YAMLHelper {
String id = entry.getKey();
String source = entry.getValue().get(SOURCE).asText();
- result.add(new StepInput(id, source));
+ result.add(new InputPort(id, source));
}
}
return result;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 70d9098..dc5e16d 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
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import org.apache.taverna.scufl2.api.port.InputProcessorPort;
import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-public class CommandLineTool implements Process {
+public class CommandLineTool extends Process {
private final static String BASE_COMMAND = "baseCommand";
private final static String ID = "id";
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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
new file mode 100644
index 0000000..1d1522d
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/InputPort.java
@@ -0,0 +1,53 @@
+/*
+ * 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;
+
+public class InputPort {
+
+ private String name;
+
+ private String source;
+
+ public InputPort() {
+ this.name = "";
+ this.source = "";
+ }
+
+ public InputPort(String name, String source) {
+ this.name = name;
+ this.source = source;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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
new file mode 100644
index 0000000..c865e9c
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/OutputPort.java
@@ -0,0 +1,41 @@
+/*
+ * 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;
+
+public class OutputPort {
+
+ private String name;
+
+ public OutputPort() {
+ this.name = "";
+ }
+
+ public OutputPort(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.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/ba5ea1b6/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 70e3669..991df0a 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
@@ -19,15 +19,31 @@
package org.apache.taverna.scufl2.cwl;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Set;
import java.util.HashSet;
-import org.apache.taverna.scufl2.api.port.SenderPort;
-import org.apache.taverna.scufl2.api.port.ReceiverPort;
+import java.util.Set;
+
+public abstract class Process {
+
+ private Set<InputPort> inputPorts = new HashSet<>();
+ private Set<OutputPort> outputPorts = new HashSet<>();
+
+
+ public abstract void parse();
+
+ public Set<InputPort> getInputPorts() {
+ return this.inputPorts;
+ }
+
+ public void setInputPorts(Set<InputPort> inputs) {
+ this.inputPorts = inputs;
+ }
-public interface Process {
+ public Set<OutputPort> getOutputPorts() {
+ return this.outputPorts;
+ }
- public void parse();
+ public void setOutputPorts(Set<OutputPort> outputs) {
+ this.outputPorts = outputs;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 193e1a6..9d5d0c0 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
@@ -21,7 +21,7 @@ package org.apache.taverna.scufl2.cwl;
import com.fasterxml.jackson.databind.JsonNode;
-public class Reference implements Process {
+public class Reference extends Process {
private String source;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 cdcd46e..80ccf03 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
@@ -30,8 +30,8 @@ public class Step {
private String id;
private Process run;
- private Set<StepInput> inputs;
- private Set<StepOutput> outputs;
+ private Set<InputPort> inputs;
+ private Set<OutputPort> outputs;
public Step() {
inputs = new HashSet<>();
@@ -54,27 +54,27 @@ public class Step {
this.run = run;
}
- public void addInput(String id, String source) {
- inputs.add(new StepInput(id, source));
+ public void addInput(String name, String source) {
+ inputs.add(new InputPort(name, source));
}
- public void setInputs(Set<StepInput> inputs) {
+ public void setInputs(Set<InputPort> inputs) {
this.inputs = inputs;
}
- public Set<StepInput> getInputs() {
+ public Set<InputPort> getInputs() {
return inputs;
}
- public void addOutput(String id) {
- outputs.add(new StepOutput(id));
+ public void addOutput(String name) {
+ outputs.add(new OutputPort(name));
}
- public void setOutputs(Set<StepOutput> outputs) {
+ public void setOutputs(Set<OutputPort> outputs) {
this.outputs = outputs;
}
- public Set<StepOutput> getOutputs() {
+ public Set<OutputPort> getOutputs() {
return outputs;
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepInput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepInput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepInput.java
deleted file mode 100644
index 0432272..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepInput.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.*;
-
-public class StepInput {
-
- private String id;
- private String source;
-
- public StepInput() {
- this.id = null;
- this.source = null;
- }
-
- public StepInput(String id, String source) {
- this.id = id;
- this.source = source;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-
- public void setSource(String source) {
- this.source = source;
- }
-
- public String getSource() {
- return source;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepOutput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepOutput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepOutput.java
deleted file mode 100644
index 145fa2d..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/StepOutput.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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;
-
-public class StepOutput {
-
- private String id;
-
- public StepOutput() {
- this.id = null;
- }
-
- public StepOutput(String id) {
- this.id = id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getId() {
- return id;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/ba5ea1b6/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 8470434..9f61758 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
@@ -41,7 +41,7 @@ import org.apache.taverna.scufl2.api.port.ReceiverPort;
import com.fasterxml.jackson.databind.JsonNode;
-public class WorkflowProcess implements Process {
+public class WorkflowProcess extends Process {
private CWLParser cwlParser;
@@ -127,7 +127,7 @@ public class WorkflowProcess implements Process {
public void parseDataLinks(Set<Step> cwlSteps) {
for(Step step: cwlSteps) {
- for(StepInput stepInput: step.getInputs()) {
+ for(InputPort stepInput: step.getInputs()) {
String[] sourcePath = stepInput.getSource().split("/");
String source = sourcePath[sourcePath.length-1];
source = source.replace("#", "");
@@ -140,7 +140,7 @@ public class WorkflowProcess implements Process {
if(sender == null) {
throw new NullPointerException("Cannot find sender port with name: " + source);
}
- String receiverId = stepInput.getId();
+ String receiverId = stepInput.getName();
ReceiverPort receiver = workflowOutputs.get(receiverId);
if(receiver == null) {
receiver = processorInputs.get(receiverId);