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