[
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]