Hi all,
Currently non of the synapse artifacts fully support versioning mechanism. Thus, here I suggest a new strategy of enabling the feature of versiong of synapse artifacts, pointing https://issues.apache.org/jira/browse/SYNAPSE-928
. Sample configuration of sequences, endpoints, and proxies are illustrated below, with the versioning hierarchy of artifacts. Please give your valuable thoughts, comments on the proposed architecture.


  1. Versioning of Sequence


Sample-Sequence versioning hierarchy

    • Sequence= foo


   <sequence key="foo"/>


    • Sequence-=foo, version =1.0


   <sequence key="foo" version=”1.0”/>

   

    • Sequence-=foo, version=2.0


   <sequence key="foo" version=”1.0”/>

   

Hierarchical structure of sequences in different versions


├── sequences

│   ├── 1.0

│   │   └── foo.xml

│   ├── 2.0

│   │   └── foo.xml

│   └── foo.xml



  1. Versioning of Endpoints


Sample-endpoint versioning hierarchy


    • Endpoint-simple


<endpoint name="simple">
       <address uri="http://localhost:9000/soap/SimpleStockQuoteService"/>
    </endpoint>


    • Endpoint=simple, version-1.0


<endpoint name="simple" version=”1.0”>
        <address uri="http://localhost:9000/soap/SimpleStockQuoteService1"/>
    </endpoint>





    • Endpoint-simple, version-2.0


<endpoint name="simple" version=”1.0”>
        <address uri="http://localhost:9000/soap/SimpleStockQuoteService2"/>
    </endpoint>


Hierarchical structure of endpoints in different versions



├── endpoints

│   ├── 1.0

│   │   └── simple.xml

│   ├── 2.0

│   │   └── simple.xml

│   └── simple.xml




  1. Versioning of Proxy Services


Sample-Proxy Services versioning hierarchy


    • Proxy=SampleProxy, serviceHierachy=”/a/b/”


<proxy name="SampleProxy" serviceHierarchy="/a/b/"

</proxy>


URL: http://{Host}:{Port}/proxy-services/a/b/SampleProxy



    • Proxy=SampleProxy, serviceHierachy=/a/b/, version = 1.0


<proxy name="SampleProxy" serviceHierarchy="/a/b/" version=”1.0”>
</proxy>


URL: http://{Host}:{Port}/proxy-services/a/b/SampleProxy/1.0/


    • Proxy=SampleProxy, version = 2.0


<proxy name="SampleProxy" serviceHierarchy="/a/b/" version=”2.0”>
</proxy>


URL: http://{Host}:{Port}/proxy-services/a/b/SampleProxy/2.0/



Hierarchical structure of sequences in different versions



├── proxy-services

│   └── a

│       └── b

│           ├── 1.0

│           │   └── SampleProxy.xml

│           ├── 2.0

│           │   └── SampleProxy.xml

│           └── SampleProxy.xml





Thanks,
Thilini