Dear Taverna 2 user/developer,

I have attached a little workflow that produces an empty lists in three ways: an empty list in the middle of a list of lists, a single (empty) list, and an empty list at the end of a list. The output of this workflow in the results perspective is as follows.

Empty list in the middle is shown as  'waiting for data'.
Empty list: nothing
Empty list at end: nothing (after the list that has items).

The list sizes suggest that internally empty lists are never lost and I assume remain a genuine part of a list. This seems very properly done to me, but couldn't the output of the worklow reflect this in the results perspective? The apparent discrepancy is a bit confusing for me now.

I think this is important for workflows that process the results of services that may produce empty sublists (one such service is an essential in one of my workflows).

Many thanks!
Marco.

PS
It would be a great feature if I could clone or copy a beanshell for creating a workflow such as the one attached.

--

Marco Roos
Faculty of Science
University of Amsterdam
Kruislaan 403, room F1.02
1098 SJ Amsterdam
tel. +31 (0) 20 525 7522
http://home.medewerker.uva.nl/m.roos1 (includes links to social networks)
Note the change of e-mail address to [email protected]

<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow"; version="1"><dataflow 
id="ab1dbebc-4f23-4c7b-bafd-9b88af860466" 
role="top"><name>dataflow7</name><inputPorts 
/><outputPorts><port><name>emptyinmiddle</name></port><port><name>listsize</name></port><port><name>emptylistsize</name></port><port><name>emptylist</name></port><port><name>emptyatend</name></port><port><name>listsize3</name></port></outputPorts><processors><processor><name>CreateEmptyListInList</name><inputPorts
 
/><outputPorts><port><name>output2deep</name><depth>2</depth><granularDepth>2</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap
 /><outputMap><map from="output2deep" to="output2deep" 
/></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

ArrayList list2deep = new ArrayList();
ArrayList list1deep1 = new ArrayList();
ArrayList emptylist = new ArrayList();
ArrayList list1deep2 = new ArrayList();

list1deep1.add("item1");
list1deep1.add("item2");
list2deep.add(list1deep1);
list2deep.add(emptylist);
list1deep2.add("item3");
list2deep.add(list1deep2);

output2deep=list2deep;

</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs />
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>2</granularDepth>
      <name>output2deep</name>
      <depth>2</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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>ListSize</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>listsize</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
 from="inputlist" to="inputlist" /></inputMap><outputMap><map from="listsize" 
to="listsize" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

listsize = inputlist.size();</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>inputlist</name>
      <depth>1</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
  </inputs>
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>0</granularDepth>
      <name>listsize</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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="inputlist" depth="1" 
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>CreateEmptyList</name><inputPorts
 
/><outputPorts><port><name>emptyList</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap
 /><outputMap><map from="emptyList" to="emptyList" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

ArrayList emptyList = new ArrayList();
</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs />
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>1</granularDepth>
      <name>emptyList</name>
      <depth>1</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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>ListSize2</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>listsize</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
 from="inputlist" to="inputlist" /></inputMap><outputMap><map from="listsize" 
to="listsize" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

listsize = inputlist.size();</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>inputlist</name>
      <depth>1</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
  </inputs>
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>0</granularDepth>
      <name>listsize</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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="inputlist" depth="1" 
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>CreateEmptyListAtEndOfList</name><inputPorts
 
/><outputPorts><port><name>output2deep</name><depth>2</depth><granularDepth>2</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap
 /><outputMap><map from="output2deep" to="output2deep" 
/></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

ArrayList list2deep = new ArrayList();
ArrayList list1deep1 = new ArrayList();
ArrayList emptylist = new ArrayList();

list1deep1.add("item1");
list1deep1.add("item2");
list1deep1.add("item3");
list2deep.add(list1deep1);
list2deep.add(emptylist);

output2deep=list2deep;

</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs />
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>2</granularDepth>
      <name>output2deep</name>
      <depth>2</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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>ListSize3</name><inputPorts><port><name>inputlist</name><depth>1</depth></port></inputPorts><outputPorts><port><name>listsize</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
 from="inputlist" to="inputlist" /></inputMap><outputMap><map from="listsize" 
to="listsize" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>import java.util.*;

listsize = inputlist.size();</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>inputlist</name>
      <depth>1</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
  </inputs>
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>0</granularDepth>
      <name>listsize</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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><raven><group>net.sf.taverna.t2</group><artifact>workflowmodel-impl</artifact><version>0.4</version></raven><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="inputlist" depth="1" 
/></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions
 /><datalinks><datalink><sink 
type="processor"><processor>ListSize</processor><port>inputlist</port></sink><source
 
type="processor"><processor>CreateEmptyListInList</processor><port>output2deep</port></source></datalink><datalink><sink
 
type="processor"><processor>ListSize2</processor><port>inputlist</port></sink><source
 
type="processor"><processor>CreateEmptyList</processor><port>emptyList</port></source></datalink><datalink><sink
 
type="processor"><processor>ListSize3</processor><port>inputlist</port></sink><source
 
type="processor"><processor>CreateEmptyListAtEndOfList</processor><port>output2deep</port></source></datalink><datalink><sink
 type="dataflow"><port>emptyinmiddle</port></sink><source 
type="processor"><processor>CreateEmptyListInList</processor><port>output2deep</port></source></datalink><datalink><sink
 type="dataflow"><port>listsize</port></sink><source 
type="processor"><processor>ListSize</processor><port>listsize</port></source></datalink><datalink><sink
 type="dataflow"><port>emptylistsize</port></sink><source 
type="processor"><processor>ListSize2</processor><port>listsize</port></source></datalink><datalink><sink
 type="dataflow"><port>emptylist</port></sink><source 
type="processor"><processor>CreateEmptyList</processor><port>emptyList</port></source></datalink><datalink><sink
 type="dataflow"><port>emptyatend</port></sink><source 
type="processor"><processor>CreateEmptyListAtEndOfList</processor><port>output2deep</port></source></datalink><datalink><sink
 type="dataflow"><port>listsize3</port></sink><source 
type="processor"><processor>ListSize3</processor><port>listsize</port></source></datalink></datalinks><annotations
 /></dataflow></workflow>
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
taverna-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/taverna-users
Documentation: http://www.mygrid.org.uk/usermanual1.7/
FAQ: http://www.mygrid.org.uk/wiki/Mygrid/TavernaFaq
Biological Services: http://www.mygrid.org.uk/wiki/Mygrid/BiologicalWebServices

Reply via email to