[ 
https://issues.apache.org/jira/browse/SYNAPSE-928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13648309#comment-13648309
 ] 

Udayanga Wickramasinghe commented on SYNAPSE-928:
-------------------------------------------------

As Hiranya pointed out there is absolutely no dependency between  file name and 
Syanpse artifact name (although there is some mapping between file name and 
artifact name only for artifact deployment/update/restore purposes).. However 
there should be some representation of the versioned artifact internal to 
Synapse. In general following rules should be followed..

a) whenever artifact gets deployed a conversion process should take place 
taking input (name,version)  --> output : unique name (ie:-hash/concat/etc)
    implementation : every artifact may implement 'Versionable' interface which 
facilitate this to and from conversion..
                             only this unique artifact name should be reflected 
upon all synapse storages (ie:- Synapse Configuration storage/Deployment store 
,etc)

b) whenever artifact is being read conversion process should take place 
(ie:-to/from) and access with unique name for each artifact
    implementation : Some helper classes should be required.. Look at 
org.apache.synapse.rest.version.VersionStrategy 
                             Have a look at api's on SynapseConfiguration ,etc 
classes and how this can be implemented

c) whenever artifact is serialized a re-conversion should take place taking 
each unique name and converting back --> name,version pair
    implementation :  This is where some form of mapping strategy may be 
important 
                              Look at all *Serializer objects for each artifact 
type in synapse for serializer interfaces

d) For the sake of backward compatibility -> for each artifact with only a name 
(ie:-name,null pair) , must be assigned with a DEFAULT version for proper 
conversion process to take place..

You should have a look at how API versioning is implemented by going through 
the code and samples..I think we may be able to come up with an improved 
version for the current implementation and made consistent across all artifacts 
including APIs in this case.. Also include your thoughts on some of the ideas 
mentioned above in your proposal (possibly with a state diagram/similar form)



                
> [GSoC] Versioning of Synapse config artifacts
> ---------------------------------------------
>
>                 Key: SYNAPSE-928
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-928
>             Project: Synapse
>          Issue Type: Improvement
>            Reporter: Kasun Indrasiri
>            Assignee: Udayanga Wickramasinghe
>            Priority: Critical
>              Labels: gsoc2013, mentor
>
> Currently non of the synapse artifacts fully support versioning mechanism. 
> This feature is to support a new versioning strategy for all such artifacts. 
> Sequence, Proxy Service, API, Endpoints 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to