myGrid
  1. myGrid
  2. TAV-713

Workflow scavenger dropping ports and script content for Rshell

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.7
    • Fix Version/s: 1.7.1
    • Component/s: Taverna GUI
    • Labels:
      None
    • Environment:
      All - but discovered on Mac OSX with T1.7.0

      Description

      Trying to move an Rshell component from one workflow to another.

      Right-click and choose "Add new Workflow Scavenger" and then use a
      URL to load the source workflow. The source workflow shows up in the
      "Available Processors" list and the Rshell component is there, named
      correctly. However when I add the component to the target workflow
      the component has no input/output ports and the script content is
      empty. This occurs whether I add the Source workflow using a http://
      or a file:// url.

      http://freelancepropaganda.com/temp/rshell_comp_not_scavenged.xml (attached)

        Activity

        Stian Soiland-Reyes made changes -
        Field Original Value New Value
        Attachment rshell_comp_not_scavenged.xml [ 10110 ]
        Stian Soiland-Reyes made changes -
        Description Trying to move an Rshell component from one workflow to another.

        Right-click and choose "Add new Workflow Scavenger" and then use a
        URL to load the source workflow. The source workflow shows up in the
        "Available Processors" list and the Rshell component is there, named
        correctly. However when I add the component to the target workflow
        the component has no input/output ports and the script content is
        empty. This occurs whether I add the Source workflow using a http://
        or a file:// url.

        http://freelancepropaganda.com/temp/rshell_comp_not_scavenged.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <s:scufl xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" version="0.2" log="0">
          <s:workflowdescription lsid="urn:lsid:net.sf.taverna:wfDefinition:64d92c00-0674-4719-9dae-ee722f7d4096" author="" title="test_workflow_for_scavenged" />
          <s:processor name="Rshell_to_be_scavenged">
            <s:rshell s:hostname="localhost" s:port="6311" s:username="" s:password="" s:keepSessionAlive="false">
              # Text for the test Rshell component.

        test_output_port1 &lt;- test_input_port1
        test_output_port2 &lt;- test_input_port2
              <s:rshellInputPortList>
                <s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_1</s:rshellInputPort>
                <s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_2</s:rshellInputPort>
              </s:rshellInputPortList>
              <s:rshellOutputPortList>
                <s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_1</s:rshellOutputPort>
                <s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_2</s:rshellOutputPort>
              </s:rshellOutputPortList>
            </s:rshell>
          </s:processor>
          <s:processor name="Beanshell_to_be_scavenged">
            <s:beanshell>
              <s:scriptvalue>outputPort1 = inputPort1</s:scriptvalue>
              <s:beanshellinputlist>
                <s:beanshellinput s:syntactictype="'text/plain'">inputPort1</s:beanshellinput>
              </s:beanshellinputlist>
              <s:beanshelloutputlist>
                <s:beanshelloutput s:syntactictype="'text/plain'">outputPort1</s:beanshelloutput>
              </s:beanshelloutputlist>
              <s:dependencies s:classloader="iteration" />
            </s:beanshell>
          </s:processor>
        </s:scufl>
        Trying to move an Rshell component from one workflow to another.

        Right-click and choose "Add new Workflow Scavenger" and then use a
        URL to load the source workflow. The source workflow shows up in the
        "Available Processors" list and the Rshell component is there, named
        correctly. However when I add the component to the target workflow
        the component has no input/output ports and the script content is
        empty. This occurs whether I add the Source workflow using a http://
        or a file:// url.

        http://freelancepropaganda.com/temp/rshell_comp_not_scavenged.xml (attached)
        Ian Dunlop made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Ian Dunlop added a comment -

        Seems to be failing during RShellXMLHandler method loadProcessorFromXML(Element processorElement, ScuflModel model, String name)
        where it trys to get the XML Element processorElement.getChild(RSHELL_TAG, XScufl.XScuflNS). RSHELL = "rshell" and XScuflNS is s:http://org.embl.ebi.escience/xscufl/0.1alpha

        The overall XML it is trying to find the child from is

        <s:rshell xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" s:hostname="localhost" s:port="6311" s:username="" s:password="" s:keepSessionAlive="false"># Text for the test Rshell component.

        test_output_port1 <- test_input_port1
        test_output_port2 <- test_input_port2<s:rshellInputPortList><s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_1</s:rshellInputPort><s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_2</s:rshellInputPort></s:rshellInputPortList><s:rshellOutputPortList><s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_1</s:rshellOutputPort><s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_2</s:rshellOutputPort></s:rshellOutputPortList></s:rshell>

        Is this valid XML?

        Show
        Ian Dunlop added a comment - Seems to be failing during RShellXMLHandler method loadProcessorFromXML(Element processorElement, ScuflModel model, String name) where it trys to get the XML Element processorElement.getChild(RSHELL_TAG, XScufl.XScuflNS). RSHELL = "rshell" and XScuflNS is s: http://org.embl.ebi.escience/xscufl/0.1alpha The overall XML it is trying to find the child from is <s:rshell xmlns:s="http://org.embl.ebi.escience/xscufl/0.1alpha" s:hostname="localhost" s:port="6311" s:username="" s:password="" s:keepSessionAlive="false"># Text for the test Rshell component. test_output_port1 <- test_input_port1 test_output_port2 <- test_input_port2<s:rshellInputPortList><s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_1</s:rshellInputPort><s:rshellInputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_input_port_2</s:rshellInputPort></s:rshellInputPortList><s:rshellOutputPortList><s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_1</s:rshellOutputPort><s:rshellOutputPort s:syntacticType="'application/x-java-serialized-object'" s:symanticType="REXP">test_output_port_2</s:rshellOutputPort></s:rshellOutputPortList></s:rshell> Is this valid XML?
        Hide
        Ian Dunlop added a comment -

        Open from workflow location is OK but Add Workflow Scavenger is not.

        Show
        Ian Dunlop added a comment - Open from workflow location is OK but Add Workflow Scavenger is not.
        Hide
        Ian Dunlop added a comment -

        getFactory method in RShellXMLHandler needs changed from

        prototype = (RshellProcessor) loadProcessorFromXML(clone, null,
        PROCESSOR_TAG);

        to

        prototype = (RshellProcessor) loadProcessorFromXML(processorElement, null,
        PROCESSOR_TAG);

        ie. the elements wrapped in a <processor> tag (or else it doesn't have any children).

        Show
        Ian Dunlop added a comment - getFactory method in RShellXMLHandler needs changed from prototype = (RshellProcessor) loadProcessorFromXML(clone, null, PROCESSOR_TAG); to prototype = (RshellProcessor) loadProcessorFromXML(processorElement, null, PROCESSOR_TAG); ie. the elements wrapped in a <processor> tag (or else it doesn't have any children).
        Ian Dunlop made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

        Error rendering 'com.atlassian.jira.plugins.jira-bitbucket-connector-plugin:dvcs-commits-tabpanel'. Please contact your JIRA administrators.

          People

          • Assignee:
            Ian Dunlop
            Reporter:
            Ian Dunlop
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: