On Aug 19, 2013, at 2:02 PM, Udayanga Wickramasinghe 
<[email protected]> 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?

Thanks,
Hiranya

> 
> Regards
> Udayanga
> 
> On Sun, Aug 11, 2013 at 2:46 PM, Hiranya Jayathilaka <[email protected]> 
> wrote:
> 
> On Aug 11, 2013, at 4:52 AM, Thilini Gamage <[email protected]> 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 identifier.
> 
> 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 
> https://issues.apache.org/jira/browse/SYNAPSE-914). May be you can try to 
> leverage that.
> 
> Thanks,
> Hiranya
> 
>>  
>> 
>> Any comments and suggestions on this?
>> 
>> [1]-https://issues.apache.org/jira/browse/SYNAPSE-928
>> -- 
>> Thilini 
>> Thilini Shanika Gamage
>> Department of Computer Science and Engineering
>> University of Moratuwa
> 
> --
> Hiranya Jayathilaka
> Mayhem Lab/RACE Lab;
> Dept. of Computer Science, UCSB;  http://cs.ucsb.edu
> E-mail: [email protected];  Mobile: +1 (805) 895-7443
> Blog: http://techfeast-hiranya.blogspot.com
> 
> 
> 
> 
> -- 
> http://www.udayangawiki.blogspot.com

--
Hiranya Jayathilaka
Mayhem Lab/RACE Lab;
Dept. of Computer Science, UCSB;  http://cs.ucsb.edu
E-mail: [email protected];  Mobile: +1 (805) 895-7443
Blog: http://techfeast-hiranya.blogspot.com

Reply via email to