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/10 11:58:34 UTC
[3/6] incubator-taverna-language git commit: Change nesting method
name, Add a test
Change nesting method name, Add a test
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/3efbf085
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/3efbf085
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/3efbf085
Branch: refs/heads/master
Commit: 3efbf0857f0ed3c8d7fa8b52f45bdc73af2ff747
Parents: d93452d
Author: Majdi Haouech <m....@criteo.com>
Authored: Mon Aug 6 23:59:57 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Mon Aug 6 23:59:57 2018 +0200
----------------------------------------------------------------------
.../taverna/scufl2/api/common/Scufl2Tools.java | 8 +++++++-
.../scufl2/api/common/TestScufl2Tools.java | 20 ++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3efbf085/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
index f7f7698..0823e3b 100644
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
+++ b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
@@ -753,7 +753,7 @@ public class Scufl2Tools {
return activity;
}
- public Configuration createNestedRelationship(Processor processor, Workflow childWorkflow, Profile profile) {
+ public Configuration setAsNestedWorkflow(Processor processor, Workflow childWorkflow, Profile profile) {
if(processor.getParent() == null) {
throw new IllegalStateException("Processor " + processor + " has no parent");
}
@@ -764,6 +764,12 @@ public class Scufl2Tools {
if(nestedWorkflowForProcessor(processor, profile) != null) {
throw new IllegalStateException("Processor " + processor + " already has a nested workflow");
}
+ try {
+ processor.getActivity(profile);
+ throw new IllegalStateException("Processor " + processor + " already has a bound activity");
+ } catch(IndexOutOfBoundsException e) {
+ // Processor should have no bound activity, which is the case here.
+ }
Activity activity = createActivityFromProcessor(processor, profile);
activity.setType(NESTED_WORKFLOW);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3efbf085/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
index 24fc788..179553b 100644
--- a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
+++ b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
@@ -34,10 +34,8 @@ import java.util.Set;
import org.apache.taverna.scufl2.api.ExampleWorkflow;
import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
+import org.apache.taverna.scufl2.api.configurations.Configuration;
import org.apache.taverna.scufl2.api.container.WorkflowBundle;
import org.apache.taverna.scufl2.api.core.ControlLink;
import org.apache.taverna.scufl2.api.core.Processor;
@@ -78,10 +76,24 @@ public class TestScufl2Tools extends ExampleWorkflow {
Profile profile = workflowBundle.getMainProfile();
Scufl2Tools tools = new Scufl2Tools();
- tools.createNestedRelationship(processor, child, profile);
+ tools.setAsNestedWorkflow(processor, child, profile);
Workflow nested = tools.nestedWorkflowForProcessor(processor, profile);
assertEquals(child, nested);
+
+ boolean found = false;
+
+ for(Activity activity: profile.getActivities()) {
+ if(activity.getType().equals(Scufl2Tools.NESTED_WORKFLOW)) {
+ for(Configuration config: tools.configurationsFor(activity, profile)) {
+ String nestedWorkflowName = config.getJson().get("nestedWorkflow").asText();
+ Workflow wf = workflowBundle.getWorkflows().getByName(nestedWorkflowName);
+ found |= (wf != null && nestedWorkflowName.equals(child.getName()));
+ }
+ }
+ }
+
+ assertTrue(found);
}
@Test