[ 
https://issues.apache.org/jira/browse/WODEN-20?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12865606#action_12865606
 ] 

Sagara Gunathunga  commented on WODEN-20:
-----------------------------------------


"Arthur Ryman added a comment - 07/May/10 03:30 PM
Dilshan, If programmers need to use both the read-only and the read-write 
interfaces together, then it would be awkward. I assume programmers will only 
use one or the other. Leaving "Editable" in the names is OK. "

Arthur  ,

Above suggestion is much more clear with your assumption ,but practically this 
is not always possible. As an example if I take  the use case mentioned in your 
2nd point modifying existing WSDL file ; first WSDLReader returns object of 
Description type and then in order to modify the content user should cast into 
editable.Description, here we can see both read-only and read-write APIs 
together. In such scenarios user needs to use both APIs together.

Also it is not possible to  pre-determine the exact place where the user move 
in to one API to a another , as an example to add new child component to a 
Binding component of a existing WSDL file  user has following two ( or more) 
options.

1.) First read the file, cast Description into editable.Description and 
retrieve child components to reach to the particular editable.Binding component 
 and add new child component.

2.)First read the file and use Description component to reach to the particular 
Binding and once he want to add new child component cast Binding into 
edtable.Binding.


I have two suggestion for this

1.) Simply use "Ed" or "E" like prefix instead "Editable" to short the new 
interface names.

2.) Use Arthur's suggestion with a convention /policy.
  
  We can introduce a policy something like if a user plan for a modification in 
future he should move into the read-write API at the top level by casting 
Description into editable.Description  this will reduce mixing components from 
both APIs together. Also it is possible to encourage user to follow this policy 
by introducing a method like makeEditable() on Description  interface ( public 
editable.Description  makeEditable() {...}  ). WDYT ?


" Arthur Ryman added a comment - 07/May/10 03:30 PM
2. The file serialization strategy relies and naming conventions to generate 
the file names. This means you can't handle the important use case of editing 
an existing set of WSDL 2.0 files. Suppose you start with a set of WSDL 2.0 
files and want to modify them. You should serialize them back into the same 
files. This works unless the user creates new top-level components. In this 
case the user should be able to specify the name of the file. So I think the 
interface for creating a new top-level component should let to specify the name 
the file, or maybe an output stream. "


I'm little confusing with this ,  Component level API does not contains any 
knowledge about physical constructs of a WSDL doc , there is no Imports or 
Includes. Once the user read a WSDL file and serialize back to the file using 
WSDLWriter it is necessary to preserve the physical constructs but when he 
serialize using Component level API is it necessary to preserve same physical 
structure ?

 IMO when he serialize using  Component level API he can select one of the 
defined strategy and this behavior  is same for both newly created docs and 
existing docs .





> Component model API needs modifiers
> -----------------------------------
>
>                 Key: WODEN-20
>                 URL: https://issues.apache.org/jira/browse/WODEN-20
>             Project: Woden
>          Issue Type: New Feature
>          Components: Parser
>            Reporter: Jeremy Hughes
>            Assignee: Sagara Gunathunga 
>         Attachments: WodenProposal_Dilshan.pdf
>
>
> A Woden 'client' - eg a tool such as java2wsdl - might want to:
> 1 introspect a tree of java classes / interfaces
> 2 create an org.apache.woden.wsdl20.Interface for each - adding to the 
> Description object along the way
> 3 serialize to disk.
> Today it is only possible to modify the object form of the WSDL through the 
> Element model API. This requires the client app to understand WSDL at the 
> file level.
> For step 2 addInterface() is required on Description. Of course 
> Interface.addInterfaceOperation() is then required and so on...
> For step 3 a 'strategy' is needed to map from the Component model to the 
> Element model's representation of the WSDL in file form. e.g. do all the 
> <interface> elements go in the same WSDL file or do all the <interface> 
> elements in the same namespace go in one file etc. Also, do the <service> 
> elements go in separately included/imported WSDL files as is typically the 
> best practice with WSDL 1.1. All these options could be represented using a 
> strategy pattern. 

-- 
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: woden-dev-unsubscr...@ws.apache.org
For additional commands, e-mail: woden-dev-h...@ws.apache.org

Reply via email to