synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hiranya Jayathilaka <>
Subject Re: Synapse Proxy Services Versioning
Date Mon, 19 Aug 2013 23:22:41 GMT

On Aug 19, 2013, at 2:02 PM, Udayanga Wickramasinghe <> wrote:

> Hi, 
> sorry for my late reply. 
> +1 for hierarchical services. I think one other alternative is to implement versioned
proxy services through 'version' attribute which is how sequences/endpoints are versioned
right now. We plan to represent different versions of same service using a unique id (uuid)
and register them in 'AxisConfiguration'/SynapseConfig.

This sounds good. It's consistent with how the other artifacts are versioned in Synapse. 

> However this requires a special handler (ie:- Axis2 handler/dispatcher) to convert a
name,version pair to the respective uuid and dispatch to the relevant service.
> ie:- handler will convert /services/TestProxy/1.0.0  to   /services/TestProxy_1.0.0_{uuid}

The UUIDs are never exposed to the user right?


> Regards
> Udayanga
> On Sun, Aug 11, 2013 at 2:46 PM, Hiranya Jayathilaka <> wrote:
> On Aug 11, 2013, at 4:52 AM, Thilini Gamage <> wrote:
>> Hi all,
>> I'm currently working on the GSOC project of 'Versioning of Synapse Artifact' [1]
and up to now I have completed the versioning of Synapse sequences ( including main sequences)
and endpoints. The versioning of sequence and endpoints is done by generating an unique identifier
(based on artifact name and version) for each versioned artifact and maintaining that unique
identifier in deployment and run time dispatching etc. 
>> Now I'm looking into proxy services versioning and according to my understanding
the proxy services versioning can to be enabled by building axis2 service for each versioned
proxy. The axis2 service deployment and dispatching should be done using a generated unique
> I think this should be similar to API versioning. APIs use the VersioningStrategy interface
to determine how the version numbers are associated with individual APIs. The default implementation
uses a URL-based strategy.
> e.g. /context/1.0.0/foo/bar
> You can take a similar approach for proxy services. May be we only need URL based versioning
in the case of proxy services. Since proxy services deal with SOAP messages, I don't think
other options make much sense. So we probably need something like:
> /services/TestProxy/1.0.0
> The main problem however is representing different versions of the same service in the
SynapseConfiguration/AxisConfiguration. Axis2 supports something called hierarchical services
(see May be you can try to leverage that.
> Thanks,
> Hiranya
>> Any comments and suggestions on this?
>> [1]-
>> -- 
>> Thilini 
>> Thilini Shanika Gamage
>> Department of Computer Science and Engineering
>> University of Moratuwa
> --
> Hiranya Jayathilaka
> Mayhem Lab/RACE Lab;
> Dept. of Computer Science, UCSB;
> E-mail:;  Mobile: +1 (805) 895-7443
> Blog:
> -- 

Hiranya Jayathilaka
Mayhem Lab/RACE Lab;
Dept. of Computer Science, UCSB;
E-mail:;  Mobile: +1 (805) 895-7443

View raw message