Alan
thank you for looking into this!
the following may explain why your script works: are you supplying the
value to in0 through a workflow input? because I just found out that
the problem occurs _only_ when the value to input in0 is supplied
through a /constant/ processor (with value equal to the file name) -- if
I replace the constant with a user input, I get a correct result...
which is probably the way you have done it? it's either something in the
way the constant value is passed on along the arc that connects to the
input port of my processor, but not sure what...?
so what happens if you supply "C:/Users/alanrw" to your script through
a constant? I'm puzzled...
attached is a version of your script that receives input from a
constant processor -- and it doesn't work. I may be just doing something
silly...
cheers! -Paolo
Alan R Williams wrote:
I've just tried out the following script with input port in0 and
output ports out0 and out1.
File f0 = new File(in0);
if (f0.exists()) {
out0 = "input port true";
} else {
out0 = "input port false";
}
File f1 = new File("C:/Users/alanrw");
if (f1.exists()) {
out1 = "string specified true";
}
else {
out1 = "string specified false";
}
and both out1 and out2 generate the "true" values.
Paolo, can you try that (with a different string value) and see what
you get?
Alan
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1"><dataflow
id="4525b065-9bab-41d9-ba94-a6ddc4a462ed"
role="top"><name>Workflow37</name><inputPorts
/><outputPorts><port><name>out0</name></port><port><name>out1</name></port></outputPorts><processors><processor><name>Beanshell</name><inputPorts><port><name>in0</name><depth>0</depth></port></inputPorts><outputPorts><port><name>out0</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>out1</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.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
from="in0" to="in0" /></inputMap><outputMap><map from="out1" to="out1" /><map
from="out0" to="out0" /></outputMap><configBean
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
xmlns="">
<script>File f0 = new File(in0);
if (f0.exists()) {
out0 = "input port true";
} else {
out0 = "input port false";
}
File f1 = new File("/Users/paolo/Documents/myGRID/OPM/PC3/SampleData/J062941");
if (f1.exists()) {
out1 = "string specified true";
}
else {
out1 = "string specified false";
}
</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>in0</name>
<depth>0</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>out0</name>
<depth>0</depth>
<mimeTypes>
<string>text/plain</string>
</mimeTypes>
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
<granularDepth>0</granularDepth>
<name>out1</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.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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="in0" depth="0"
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>String_constant</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>0.6-SNAPSHOT</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>~/Documents/myGRID/OPM/PC3/SampleData/J062941</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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>0.6-SNAPSHOT</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></processors><conditions
/><datalinks><datalink><sink
type="processor"><processor>Beanshell</processor><port>in0</port></sink><source
type="processor"><processor>String_constant</processor><port>value</port></source></datalink><datalink><sink
type="dataflow"><port>out0</port></sink><source
type="processor"><processor>Beanshell</processor><port>out0</port></source></datalink><datalink><sink
type="dataflow"><port>out1</port></sink><source
type="processor"><processor>Beanshell</processor><port>out1</port></source></datalink></datalinks><annotations
/></dataflow></workflow>------------------------------------------------------------------------------
_______________________________________________
taverna-hackers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/taverna-hackers
Developers Guide: http://www.mygrid.org.uk/usermanual1.7/dev_guide.html
FAQ: http://www.mygrid.org.uk/wiki/Mygrid/TavernaFaq