test/workflows/xml_xpath.t2flow in t2-server-0.6.1 vs test/workflows/xml_xpath.t2flow in t2-server-0.9.0

- old
+ new

@@ -1,137 +1,137 @@ -<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="bac27078-6e26-48b0-a127-56146f1eff2b" role="top"><name>Workflow1</name><inputPorts><port><name>xml</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port><port><name>xpath</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>nodes</name><annotations /></port><port><name>xml_nodes</name><annotations /></port></outputPorts><processors><processor><name>get_element</name><inputPorts><port><name>xml-text</name><depth>0</depth></port><port><name>xpath</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>nodelistAsXML</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="xml-text" to="xml-text" /><map from="xpath" to="xpath" /></inputMap><outputMap><map from="nodelistAsXML" to="nodelistAsXML" /><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns=""> - <localworkerName>net.sourceforge.taverna.scuflworkers.xml.XPathTextWorker</localworkerName> - <script>import org.dom4j.Document; -import org.dom4j.Node; -import org.dom4j.io.SAXReader; - -SAXReader reader = new SAXReader(false); -reader.setIncludeInternalDTDDeclarations(false); -reader.setIncludeExternalDTDDeclarations(false); - -Document document = reader.read(new StringReader(xmltext)); -List nodelist = document.selectNodes(xpath); - -// Process the elements in the nodelist -ArrayList outputList = new ArrayList(); -ArrayList outputXmlList = new ArrayList(); - -String val = null; -String xmlVal = null; -for (Iterator iter = nodelist.iterator(); iter.hasNext();) { - Node element = (Node) iter.next(); - xmlVal = element.asXML(); - val = element.getStringValue(); - if (val != null &amp;&amp; !val.equals("")) { - outputList.add(val); - outputXmlList.add(xmlVal); - } - -} - -List nodelist=outputList; -List nodelistAsXML=outputXmlList;</script> - <dependencies> - <string>dom4j:dom4j:1.6</string> - </dependencies> - <classLoaderSharing>workflow</classLoaderSharing> - <localDependencies /> - <artifactDependencies> - <net.sf.taverna.raven.repository.BasicArtifact> - <groupId>dom4j</groupId> - <artifactId>dom4j</artifactId> - <version>1.6</version> - <hashCode>716010169</hashCode> - </net.sf.taverna.raven.repository.BasicArtifact> - </artifactDependencies> - <inputs> - <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> - <handledReferenceSchemes /> - <translatedElementType>java.lang.String</translatedElementType> - <allowsLiteralValues>true</allowsLiteralValues> - <name>xpath</name> - <depth>0</depth> - <mimeTypes> - <string>'text/plain'</string> - </mimeTypes> - </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> - <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> - <handledReferenceSchemes /> - <translatedElementType>java.lang.String</translatedElementType> - <allowsLiteralValues>true</allowsLiteralValues> - <name>xml-text</name> - <depth>0</depth> - <mimeTypes> - <string>'text/xml'</string> - </mimeTypes> - </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> - </inputs> - <outputs> - <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> - <granularDepth>1</granularDepth> - <name>nodelist</name> - <depth>1</depth> - <mimeTypes> - <string>l('text/plain')</string> - </mimeTypes> - </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> - <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> - <granularDepth>1</granularDepth> - <name>nodelistAsXML</name> - <depth>1</depth> - <mimeTypes> - <string>l('text/plain')</string> - </mimeTypes> - </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> - </outputs> -</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.2</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.2</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.2</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.2</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.2</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="xml-text" depth="0" /><port name="xpath" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>get_element</processor><port>xml-text</port></sink><source type="dataflow"><port>xml</port></source></datalink><datalink><sink type="processor"><processor>get_element</processor><port>xpath</port></sink><source type="dataflow"><port>xpath</port></source></datalink><datalink><sink type="dataflow"><port>nodes</port></sink><source type="processor"><processor>get_element</processor><port>nodelist</port></source></datalink><datalink><sink type="dataflow"><port>xml_nodes</port></sink><source type="processor"><processor>get_element</processor><port>nodelistAsXML</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.IdentificationAssertion"> - <identification>bac27078-6e26-48b0-a127-56146f1eff2b</identification> - </annotationBean> - <date>2011-05-13 10:10:44.677 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>221474df-64d5-4da5-bd27-244625a8bcfa</identification> - </annotationBean> - <date>2011-05-13 10:04:40.297 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>00e06598-e7fa-4509-8276-4fbee7d8e525</identification> - </annotationBean> - <date>2011-05-13 10:01:30.899 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>082e06b0-6bfa-4287-a109-0163fa81fd9b</identification> - </annotationBean> - <date>2011-05-13 09:54:10.765 BST</date> - <creators /> - <curationEventList /> - </net.sf.taverna.t2.annotation.AnnotationAssertionImpl> - </annotationAssertions> +<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.2.0"><dataflow id="bac27078-6e26-48b0-a127-56146f1eff2b" role="top"><name>Workflow1</name><inputPorts><port><name>xml</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port><port><name>xpath</name><depth>0</depth><granularDepth>0</granularDepth><annotations /></port></inputPorts><outputPorts><port><name>nodes</name><annotations /></port><port><name>xml_nodes</name><annotations /></port></outputPorts><processors><processor><name>get_element</name><inputPorts><port><name>xml-text</name><depth>0</depth></port><port><name>xpath</name><depth>0</depth></port></inputPorts><outputPorts><port><name>nodelist</name><depth>1</depth><granularDepth>1</granularDepth></port><port><name>nodelistAsXML</name><depth>1</depth><granularDepth>1</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.2</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="xml-text" to="xml-text" /><map from="xpath" to="xpath" /></inputMap><outputMap><map from="nodelistAsXML" to="nodelistAsXML" /><map from="nodelist" to="nodelist" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns=""> + <localworkerName>net.sourceforge.taverna.scuflworkers.xml.XPathTextWorker</localworkerName> + <script>import org.dom4j.Document; +import org.dom4j.Node; +import org.dom4j.io.SAXReader; + +SAXReader reader = new SAXReader(false); +reader.setIncludeInternalDTDDeclarations(false); +reader.setIncludeExternalDTDDeclarations(false); + +Document document = reader.read(new StringReader(xmltext)); +List nodelist = document.selectNodes(xpath); + +// Process the elements in the nodelist +ArrayList outputList = new ArrayList(); +ArrayList outputXmlList = new ArrayList(); + +String val = null; +String xmlVal = null; +for (Iterator iter = nodelist.iterator(); iter.hasNext();) { + Node element = (Node) iter.next(); + xmlVal = element.asXML(); + val = element.getStringValue(); + if (val != null &amp;&amp; !val.equals("")) { + outputList.add(val); + outputXmlList.add(xmlVal); + } + +} + +List nodelist=outputList; +List nodelistAsXML=outputXmlList;</script> + <dependencies> + <string>dom4j:dom4j:1.6</string> + </dependencies> + <classLoaderSharing>workflow</classLoaderSharing> + <localDependencies /> + <artifactDependencies> + <net.sf.taverna.raven.repository.BasicArtifact> + <groupId>dom4j</groupId> + <artifactId>dom4j</artifactId> + <version>1.6</version> + <hashCode>716010169</hashCode> + </net.sf.taverna.raven.repository.BasicArtifact> + </artifactDependencies> + <inputs> + <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> + <handledReferenceSchemes /> + <translatedElementType>java.lang.String</translatedElementType> + <allowsLiteralValues>true</allowsLiteralValues> + <name>xpath</name> + <depth>0</depth> + <mimeTypes> + <string>'text/plain'</string> + </mimeTypes> + </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> + <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> + <handledReferenceSchemes /> + <translatedElementType>java.lang.String</translatedElementType> + <allowsLiteralValues>true</allowsLiteralValues> + <name>xml-text</name> + <depth>0</depth> + <mimeTypes> + <string>'text/xml'</string> + </mimeTypes> + </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean> + </inputs> + <outputs> + <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> + <granularDepth>1</granularDepth> + <name>nodelist</name> + <depth>1</depth> + <mimeTypes> + <string>l('text/plain')</string> + </mimeTypes> + </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> + <net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> + <granularDepth>1</granularDepth> + <name>nodelistAsXML</name> + <depth>1</depth> + <mimeTypes> + <string>l('text/plain')</string> + </mimeTypes> + </net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean> + </outputs> +</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.2</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.2</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.2</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.2</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.2</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="xml-text" depth="0" /><port name="xpath" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>get_element</processor><port>xml-text</port></sink><source type="dataflow"><port>xml</port></source></datalink><datalink><sink type="processor"><processor>get_element</processor><port>xpath</port></sink><source type="dataflow"><port>xpath</port></source></datalink><datalink><sink type="dataflow"><port>nodes</port></sink><source type="processor"><processor>get_element</processor><port>nodelist</port></source></datalink><datalink><sink type="dataflow"><port>xml_nodes</port></sink><source type="processor"><processor>get_element</processor><port>nodelistAsXML</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.IdentificationAssertion"> + <identification>bac27078-6e26-48b0-a127-56146f1eff2b</identification> + </annotationBean> + <date>2011-05-13 10:10:44.677 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>221474df-64d5-4da5-bd27-244625a8bcfa</identification> + </annotationBean> + <date>2011-05-13 10:04:40.297 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>00e06598-e7fa-4509-8276-4fbee7d8e525</identification> + </annotationBean> + <date>2011-05-13 10:01:30.899 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>082e06b0-6bfa-4287-a109-0163fa81fd9b</identification> + </annotationBean> + <date>2011-05-13 09:54:10.765 BST</date> + <creators /> + <curationEventList /> + </net.sf.taverna.t2.annotation.AnnotationAssertionImpl> + </annotationAssertions> </net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow> \ No newline at end of file