blob: 91d7d66cc13ee73d9d1cacb4b00599b6cb5549f6 [file] [log] [blame]
<?xml version="1.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.
-->
<workflow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://taverna.sf.net/2008/xml/t2flow ../../main/resources/org/apache/taverna/scufl2/translator/t2flow/xsd/t2flow-extended.xsd "
xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1"
producedBy="taverna-2.4.0SNAPSHOT">
<dataflow id="2d726ace-4635-4bd1-89d5-703a50c96c1a" role="top">
<name>Example_component</name>
<inputPorts>
<port>
<name>suffix</name>
<depth>0</depth>
<granularDepth>0</granularDepth>
<annotations />
</port>
</inputPorts>
<outputPorts>
<port>
<name>result</name>
<annotations />
</port>
</outputPorts>
<processors>
<processor>
<name>Create_Lots_Of_Strings</name>
<inputPorts />
<outputPorts>
<port>
<name>strings</name>
<depth>1</depth>
<granularDepth>1</granularDepth>
</port>
</outputPorts>
<annotations />
<activities>
<activity>
<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
<inputMap />
<outputMap>
<map from="strings" to="strings" />
</outputMap>
<configBean encoding="xstream">
<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
xmlns="">
<inputs />
<outputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
<name>strings</name>
<depth>1</depth>
<mimeTypes>
<string>l('text/plain')</string>
</mimeTypes>
<granularDepth>1</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>List strings = new ArrayList();
for (int i = 0; i &lt; 40; i++) {
strings.add("String" + i);
}
</script>
<dependencies />
<localworkerName>org.embl.ebi.escience.scuflworkers.java.EmitLotsOfStrings</localworkerName>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
</configBean>
<annotations />
</activity>
</activities>
<dispatchStack>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
xmlns="">
<maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
xmlns="">
<backoffFactor>1.0</backoffFactor>
<initialDelay>1000</initialDelay>
<maxDelay>5000</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
</dispatchStack>
<iterationStrategyStack>
<iteration>
<strategy />
</iteration>
</iterationStrategyStack>
</processor>
<processor>
<name>Sometimes_Fails</name>
<inputPorts>
<port>
<name>in</name>
<depth>0</depth>
</port>
</inputPorts>
<outputPorts>
<port>
<name>out</name>
<depth>0</depth>
<granularDepth>0</granularDepth>
</port>
</outputPorts>
<annotations />
<activities>
<activity>
<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
<inputMap>
<map from="in" to="in" />
</inputMap>
<outputMap>
<map from="out" to="out" />
</outputMap>
<configBean encoding="xstream">
<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>in</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain'</string>
</mimeTypes>
<handledReferenceSchemes />
<translatedElementType>java.lang.String</translatedElementType>
<allowsLiteralValues>true</allowsLiteralValues>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
</inputs>
<outputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
<name>out</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain'</string>
</mimeTypes>
<granularDepth>0</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>import java.util.Random;
Random r = new Random();
if ((r.nextInt() % 4) == 0) {
throw new RuntimeException("Fails every four runs!");
}
out = in;</script>
<dependencies />
<localworkerName>org.embl.ebi.escience.scuflworkers.java.TestSometimesFails</localworkerName>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
</configBean>
<annotations />
</activity>
</activities>
<dispatchStack>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
xmlns="">
<maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
xmlns="">
<backoffFactor>1.0</backoffFactor>
<initialDelay>1000</initialDelay>
<maxDelay>5000</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
</dispatchStack>
<iterationStrategyStack>
<iteration>
<strategy>
<cross>
<port name="in" depth="0" />
</cross>
</strategy>
</iteration>
</iterationStrategyStack>
</processor>
<processor>
<name>Concatenate_two_strings</name>
<inputPorts>
<port>
<name>string2</name>
<depth>0</depth>
</port>
<port>
<name>string1</name>
<depth>0</depth>
</port>
</inputPorts>
<outputPorts>
<port>
<name>output</name>
<depth>0</depth>
<granularDepth>0</granularDepth>
</port>
</outputPorts>
<annotations />
<activities>
<activity>
<class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class>
<inputMap>
<map from="string2" to="string2" />
<map from="string1" to="string1" />
</inputMap>
<outputMap>
<map from="output" to="output" />
</outputMap>
<configBean encoding="xstream">
<net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>string1</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain'</string>
</mimeTypes>
<handledReferenceSchemes />
<translatedElementType>java.lang.String</translatedElementType>
<allowsLiteralValues>true</allowsLiteralValues>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>string2</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain'</string>
</mimeTypes>
<handledReferenceSchemes />
<translatedElementType>java.lang.String</translatedElementType>
<allowsLiteralValues>true</allowsLiteralValues>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
</inputs>
<outputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
<name>output</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain'</string>
</mimeTypes>
<granularDepth>0</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>output = string1 + string2;</script>
<dependencies />
<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean>
</configBean>
<annotations />
</activity>
</activities>
<dispatchStack>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
xmlns="">
<maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class>
<configBean encoding="xstream">
<net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
xmlns="">
<backoffFactor>1.0</backoffFactor>
<initialDelay>1000</initialDelay>
<maxDelay>5000</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig>
</configBean>
</dispatchLayer>
<dispatchLayer>
<class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class>
<configBean encoding="xstream">
<null xmlns="" />
</configBean>
</dispatchLayer>
</dispatchStack>
<iterationStrategyStack>
<iteration>
<strategy>
<cross>
<port name="string2" depth="0" />
<port name="string1" depth="0" />
</cross>
</strategy>
</iteration>
</iterationStrategyStack>
</processor>
</processors>
<conditions />
<datalinks>
<datalink>
<sink type="processor">
<processor>Sometimes_Fails</processor>
<port>in</port>
</sink>
<source type="processor">
<processor>Create_Lots_Of_Strings</processor>
<port>strings</port>
</source>
</datalink>
<datalink>
<sink type="processor">
<processor>Concatenate_two_strings</processor>
<port>string2</port>
</sink>
<source type="dataflow">
<port>suffix</port>
</source>
</datalink>
<datalink>
<sink type="processor">
<processor>Concatenate_two_strings</processor>
<port>string1</port>
</sink>
<source type="processor">
<processor>Sometimes_Fails</processor>
<port>out</port>
</source>
</datalink>
<datalink>
<sink type="dataflow">
<port>result</port>
</sink>
<source type="processor">
<processor>Concatenate_two_strings</processor>
<port>output</port>
</source>
</datalink>
</datalinks>
<annotations>
<annotation_chain_2_2 encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.SemanticAnnotation">
<mimeType>text/rdf+n3</mimeType>
<content>&lt;&gt;
&lt;http://purl.org/dc/terms/abstract&gt;
"A not very interesting
component"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; ;
&lt;http://purl.org/dc/terms/accessRights&gt;
&lt;http://creativecommons.org/licenses/by-sa/3.0/&gt; ;
&lt;http://purl.org/dc/terms/alternative&gt;
"A very interesting
component"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; ;
&lt;http://purl.org/dc/terms/audience&gt;
&lt;http://purl.org/dc/terms/Agent&gt; ;
&lt;http://purl.org/dc/terms/title&gt;
"Alan's annotated
title"^^&lt;http://www.w3.org/2001/XMLSchema#string&gt; .
</content>
</annotationBean>
<date>2013-03-13 15:22:30.556 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain_2_2>
<annotation_chain encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.DescriptiveTitle">
<text>Example component</text>
</annotationBean>
<date>2013-03-13 15:19:26.250 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain>
<annotation_chain encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.FreeTextDescription">
<text>Example component for Stian</text>
</annotationBean>
<date>2013-03-13 15:19:35.27 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain>
<annotation_chain_2_2 encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
<identification>2d726ace-4635-4bd1-89d5-703a50c96c1a
</identification>
</annotationBean>
<date>2013-03-13 15:22:59.520 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain_2_2>
<annotation_chain_2_2 encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
<identification>1eefd4e6-f1e2-45f3-b085-10a372d4afca
</identification>
</annotationBean>
<date>2013-03-13 15:18:53.766 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain_2_2>
<annotation_chain encoding="xstream">
<net.sf.taverna.t2.annotation.AnnotationChainImpl
xmlns="">
<annotationAssertions>
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
<annotationBean
class="net.sf.taverna.t2.annotation.annotationbeans.Author">
<text>Alan R Williams</text>
</annotationBean>
<date>2013-03-13 15:19:22.146 UTC</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl>
</annotation_chain>
</annotations>
</dataflow>
</workflow>