On 18/07/2011 09:19, Mikołaj Rybiński wrote:
Hi,
yes please, send the workflow. This is the "Transform XML with
parameters" right? Is it new for v2.3?
Yes. It's basically the code you sent. I'm attaching the inner workflow.
Thanks,
Mikołaj
Alan
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1"
producedBy="taverna-2.3.0"><dataflow id="965d8ac1-2adb-4ca9-b9e4-04ba22cf0d3f"
role="top"><name>TransformXMLelementtolistofdataXMLelements</name><inputPorts><port><name>elementXml</name><depth>0</depth><granularDepth>0</granularDepth><annotations><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.MimeType">
<text>text/plain</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</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>Timepoints or results XML elements.
Example value:
<results>
<result>
<constant name="c1">1</constant>
<constant name="c2">2</constant>
<property name="p1">1</property>
<property name="p2>2</property>
</result>
</results></text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</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.MimeType">
<text>text/xml</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>argNameList</name><depth>1</depth><granularDepth>1</granularDepth><annotations><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.MimeType">
<text>text/plain</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</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>List of arguments names to leave in the resulting data series.
Example value:
c1
c2</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port><port><name>valNameListList</name><depth>2</depth><granularDepth>2</granularDepth><annotations><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>List of lists of values names to split with and leave in the
resulting data series.
Example value:
p2</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</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.MimeType">
<text>text/plain</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></inputPorts><outputPorts><port><name>dataXmlList</name><annotations><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.MimeType">
<text>text/xml</text>
</annotationBean>
<date>2011-07-16 11:22:04.591 BST</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain></annotations></port></outputPorts><processors><processor><name>mergeListsApply</name><inputPorts><port><name>inExtListOfLists</name><depth>2</depth></port><port><name>inBaseList</name><depth>1</depth></port></inputPorts><outputPorts><port><name>outList</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>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
from="inBaseList" to="inBaseList" /><map from="inExtListOfLists"
to="inExtListOfLists" /></inputMap><outputMap><map from="outList" to="outList"
/></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>inBaseList</name>
<depth>1</depth>
<mimeTypes>
<string>l('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>inExtListOfLists</name>
<depth>2</depth>
<mimeTypes>
<string>l(l('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>outList</name>
<depth>2</depth>
<mimeTypes>
<string>l(l('text/plain'))</string>
</mimeTypes>
<granularDepth>2</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>outList = new LinkedList();
for (extList: inExtListOfLists) {
list = new LinkedList(inBaseList);
list.addAll(extList);
outList.add(list);
}</script>
<dependencies />
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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>0</initialDelay>
<maxDelay>0</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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="inExtListOfLists" depth="2" /><port name="inBaseList" depth="1"
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>projectCoordinates</name><inputPorts><port><name>coordinateNameList</name><depth>1</depth></port><port><name>inXml</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outXml</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>1.3</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
from="inXml" to="inXml" /><map from="coordinateNameList"
to="coordinateNameList" /></inputMap><outputMap><map from="outXml" to="outXml"
/></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>inXml</name>
<depth>0</depth>
<mimeTypes>
<string>'text/xml'</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>coordinateNameList</name>
<depth>1</depth>
<mimeTypes>
<string>l('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>outXml</name>
<depth>0</depth>
<mimeTypes />
<granularDepth>0</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>source(new
URL("http://bioputer.mimuw.edu.pl/tav4sb/workflows/projectCoordinates.bsh"));
</script>
<dependencies />
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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>0</initialDelay>
<maxDelay>0</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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="coordinateNameList" depth="1" /><port name="inXml" depth="0"
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>elementXml2dataXml_xslFileURL_defaultValue</name><inputPorts
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap
/><outputMap><map from="value" to="value" /></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean
xmlns="">
<value>http://bioputer.mimuw.edu.pl/tav4sb/workflows/elementXml2dataXml.xsl</value>
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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>0</initialDelay>
<maxDelay>0</maxDelay>
<maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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
/></strategy></iteration></iterationStrategyStack></processor><processor><name>Transform_XML_with_parameters</name><inputPorts><port><name>sourceString</name><depth>0</depth></port><port><name>xsltString</name><depth>0</depth></port></inputPorts><outputPorts><port><name>outputString</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map
from="xsltString" to="xsltString" /><map from="sourceString" to="sourceString"
/></inputMap><outputMap><map from="outputString" to="outputString"
/></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>sourceString</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>xsltString</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>paramList</name>
<depth>1</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>outputString</name>
<depth>0</depth>
<mimeTypes />
<granularDepth>0</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>//From a proposal by Mikolaj Rybinski
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
param(paramstr) {
nameAndValue = paramstr.split("=");
if (nameAndValue.length != 2) {
throw new RuntimeException("Wrong parameter format: \"" + paramstr +
"\".");
}
name = nameAndValue[0].trim();
value = nameAndValue[1].trim();
return this;
}
if ((sourceString == void) || (sourceString == null)) {
throw new RuntimeException("sourceString must be specified");
}
if ((xsltString == void) || (xsltString == null)) {
throw new RuntimeException("xsltString must be specified");
}
Source inSource = new StreamSource(new StringReader(sourceString));
Source xslSource = new StreamSource(new StringReader(xsltString));
// the factory pattern supports different XSLT processors
// e.g. set the "javax.xml.transform.TransformerFactory" system property
TransformerFactory tnfFact = TransformerFactory.newInstance();
Transformer tnf = tnfFact.newTransformer(xslSource);
if (paramList != void) {
for (String paramstr : paramList) {
p = param(paramstr);
tnf.setParameter(p.name, p.value);
}
}
Writer outputWriter = new StringWriter();
tnf.transform(inSource, new StreamResult(outputWriter));
outputString = outputWriter.toString();</script>
<dependencies />
<localworkerName>net.sourceforge.taverna.scuflworkers.xml.XSLTWorkerWithParameters</localworkerName>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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="sourceString" depth="0" /><port name="xsltString" depth="0"
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Get_Web_Page_from_URL</name><inputPorts><port><name>url</name><depth>0</depth></port></inputPorts><outputPorts><port><name>contents</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map
from="url" to="url" /></inputMap><outputMap><map from="contents" to="contents"
/></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean
xmlns="">
<inputs>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
<name>url</name>
<depth>0</depth>
<mimeTypes>
<string>'text/x-taverna-web-url'</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>base</name>
<depth>0</depth>
<mimeTypes>
<string>'text/x-taverna-web-url'</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>contents</name>
<depth>0</depth>
<mimeTypes>
<string>'text/plain,text/html'</string>
</mimeTypes>
<granularDepth>0</granularDepth>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
</outputs>
<classLoaderSharing>workflow</classLoaderSharing>
<localDependencies />
<artifactDependencies />
<script>if ((url == void) || (url == null)) {
throw new RuntimeException("The url must be specified");
}
URL inputURL = null;
if (base != void) {
inputURL = new URL(new URL(base), url);
}
else {
inputURL = new URL(url);
}
URLConnection con = inputURL.openConnection();
InputStream in = con.getInputStream();
StringBuffer result = new StringBuffer();
BufferedReader reader;
String encoding = con.getContentEncoding();
if (encoding == null) {
reader = new BufferedReader(new InputStreamReader(in));
} else {
reader = new BufferedReader(new InputStreamReader(in, encoding));
}
String line = null;
String NEWLINE = System.getProperty("line.separator");
while ((line = reader.readLine()) != null) {
result.append(line);
result.append(NEWLINE);
}
reader.close();
contents = result.toString();
</script>
<dependencies />
<localworkerName>org.embl.ebi.escience.scuflworkers.java.WebPageFetcher</localworkerName>
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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.core</group><artifact>workflowmodel-impl</artifact><version>1.3</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="url" depth="0"
/></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions
/><datalinks><datalink><sink
type="processor"><processor>mergeListsApply</processor><port>inExtListOfLists</port></sink><source
type="dataflow"><port>valNameListList</port></source></datalink><datalink><sink
type="processor"><processor>mergeListsApply</processor><port>inBaseList</port></sink><source
type="dataflow"><port>argNameList</port></source></datalink><datalink><sink
type="processor"><processor>projectCoordinates</processor><port>coordinateNameList</port></sink><source
type="processor"><processor>mergeListsApply</processor><port>outList</port></source></datalink><datalink><sink
type="processor"><processor>projectCoordinates</processor><port>inXml</port></sink><source
type="processor"><processor>Transform_XML_with_parameters</processor><port>outputString</port></source></datalink><datalink><sink
type="processor"><processor>Transform_XML_with_parameters</processor><port>sourceString</port></sink><source
type="dataflow"><port>elementXml</port></source></datalink><datalink><sink
type="processor"><processor>Transform_XML_with_parameters</processor><port>xsltString</port></sink><source
type="processor"><processor>Get_Web_Page_from_URL</processor><port>contents</port></source></datalink><datalink><sink
type="processor"><processor>Get_Web_Page_from_URL</processor><port>url</port></sink><source
type="processor"><processor>elementXml2dataXml_xslFileURL_defaultValue</processor><port>value</port></source></datalink><datalink><sink
type="dataflow"><port>dataXmlList</port></sink><source
type="processor"><processor>projectCoordinates</processor><port>outXml</port></source></datalink></datalinks><annotations><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>Transform XML element to list of data XML elements</text>
</annotationBean>
<date>2011-07-16 11:22:04.620 BST</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>9ac320c9-8803-418d-bf6a-60a82ad0d70c</identification>
</annotationBean>
<date>2011-07-16 11:35:47.816 BST</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.FreeTextDescription">
<text>Currently supported input XML elements are: results (with
result/property and result/constant sub-elements) and timepoints (with
timepoint/time and timepoint/variable sub-element).</text>
</annotationBean>
<date>2011-07-16 11:22:04.620 BST</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>965d8ac1-2adb-4ca9-b9e4-04ba22cf0d3f</identification>
</annotationBean>
<date>2011-07-16 11:42:23.928 BST</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>6f8cb5dd-8651-49ce-8601-0689058c1d27</identification>
</annotationBean>
<date>2011-07-16 11:22:14.428 BST</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>f549a0e8-95c3-4e00-8b44-ab1a5f0cff8e</identification>
</annotationBean>
<date>2011-07-16 11:39:08.404 BST</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>MikoÅaj RybiÅski</text>
</annotationBean>
<date>2011-07-16 11:22:04.620 BST</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>e4bc793c-b9b2-4aa0-b20c-2a953fcd4390</identification>
</annotationBean>
<date>2011-07-16 11:40:40.20 BST</date>
<creators />
<curationEventList />
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
</annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric
Ries, the creator of the Lean Startup Methodology on "Lean Startup
Secrets Revealed." This video shows you how to validate your ideas,
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
taverna-users mailing list
[email protected]
[email protected]
Web site: http://www.taverna.org.uk
Mailing lists: http://www.taverna.org.uk/about/contact-us/