[kepler-dev] When to add ports

Christopher Brooks cxh at eecs.berkeley.edu
Thu Oct 14 14:56:51 PDT 2004


[I changed the subject line]

I'm tied up with some other tasks, but briefly:

I think that attributeChanged is the place to change ports.

actor.lib.MathFunction adds and removes a port as necessary,
you might look there. actor.lib.Expression might also be worth a look.

Caching the URL seems like the right idea to me.

I'm not sure why making the operation name a choice style would break
this.  Offhand, as a shot in the dark, I would look for bogus
ChangeRequests??

_Christopher


--------

    Thanks Christopher. I think that was caused by something I
    changed in the web service actor. I fixed it now.
    
    I have a question on the web service actor. (I'm asking this
    question assuming that you have access to the webservice
    actor code...)
    
    As you know given some configuration parameters, the web
    service actor configures itself to execute a specific WS.
    I have two basic configuration parameters for this purpose:
     1. The URL for the description of the service
     2. The name of an operation specified by this url
    
    So when the user enters a wsdl(service) URL, I update the
    list of available operations for the service. And when the
    user selects one of these operations, I create input and
    output ports for this service. Whenever a new operation
     name is selected or a different url is entered, I delete
    all the ports and apply this procedure in the attributeChanged
    method.
    
    The problem is, since attributeChanged is being called
    everytime I update the operation names, or in the constructor, etc..
    So when I save and reopen the test workflows, all the link to
    the configured actor is gone because the ports have been
    renewed.
    
    attributeChanged is probably not the best place to create ports
    but I don't know anywhere else to do such a change. (Or even
    GUI/icon changes that depend on the attributes.)
    
    I solved this before by checking if the operation name or wsdl
    url had really changed. But I believe it is a kind of a hack
    and doesn't solve the problem. Indeed after I renewed the
    actor to make the operation names choice style (selectable),
    it started causing problems again.
    
    I will be very happy if you have any ideas to help me with this.
    A test workflow for this can  be found in the workflows/test
    directory in the Kepler CVS main branch. (WebServiceTest.xml)
    
    Thanks in advance,
    Ilkay
    



More information about the Kepler-dev mailing list