InterfaceContract and its associated objects should be Cloneable
----------------------------------------------------------------

                 Key: TUSCANY-1452
                 URL: https://issues.apache.org/jira/browse/TUSCANY-1452
             Project: Tuscany
          Issue Type: Improvement
          Components: Java SCA Assembly Model, Java SCA Core Runtime
    Affects Versions: Java-SCA-0.90, Java-SCA-0.91, Java-SCA-Next
            Reporter: Matthew Sykes


Given the current infrastructure in 0.90, it is difficult for a binding 
provider to setup a binding-specific databinding on the binding 
InterfaceContract because the InterfaceContract, Interface, and Operation model 
objects can't be easily cloned.

While the binding providers are allowed to give the runtime an 
InterfaceContract for the binding, if the data describing the interface comes 
from something other than the binding configuration the binding will typically 
use the InterfaceContract from the componentType.  Without a way to copy the 
InterfaceContract, the binding provider will need to create an interface from 
scratch by using one of the interface processors or the assembly model 
factories and custom logic.

For example, the axis2 binding will use the portType from wsdl document 
associated with the <binding.ws ...> element in scdl to create an 
InterfaceContract or the binding.  This approach requires the 
WebServiceBindngProcessor to access the interface introspector and introspect 
an interface contract.

I've discussed this a bit with Raymond who has agreed that making the 
InterfaceContract, Interface, Operation, and associated objects cloneable would 
allow a binding provider implementation to get an instance of the interface 
contract that could be updated with a binding-specific databinding.  This is 
similar to what existed in the M2 branches of days gone by.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to