Correction: So, IMO, trying to derive the version from a service, module or
any other artifact is a bad practice.
Also see: http://msdn.microsoft.com/en-us/library/ms954726.aspx

--
Azeez

On Fri, Aug 28, 2009 at 2:30 PM, Afkham Azeez <afk...@gmail.com> wrote:

> IMHO, service versioning & module versioning are two different things.
> Module versioning is purely a deployment time concept, while service
> versioning is both a deployment & dispatch time concept. So there is no need
> to follow the same way of implementing it. I also think that deriving the
> module version from the MAR name is messy, and is not necessarily the best
> or better way of implementing it. It should come from the module descriptor;
> module.xml. Java archives do not have a standard way of having the version
> name in the artifact. That is why OSGi introduced the bundle version in the
> manifest file. So, IMO, trying to derive the name from a service, module or
> any other artifact is a bad practice.
> Unfortunately, there is no standard for Web service versioning, and there
> are different ways of implementing it. A popular way is to make the WSDL
> targetNamespace and/or the types namespace to contain the version.
>
> Azeez
>
> On Fri, Aug 28, 2009 at 1:34 PM, Deepal jayasinghe <deep...@gmail.com>wrote:
>
>> Hi Isuru,
>>
>> Thank you for taking your time and looking to this issues, but I do not
>> agree the way you have address it, please see my comments below. The
>> reason I am telling this is, as I can see this has so many issues, and
>> you have made it complicated too :) . I believe you might know that we
>> have version support for modules and we do not handle that like this. So
>> this simply break the consistency, and this introduce new URL patterns ,
>> though you have not encounter now, I am sure you are going to face a
>> number of issues (when it come to dispatching).
>>
>> > Currently Axis2 can only deploy services at the repository/services
>> > level. This makes it impossible to deploy several versions of the same
>> > service.
>> I do not agree, you can have the version name in the aar file, for
>> example foo-1.0.aar and foo-1.1.aar. Then at the deployment time just
>> append the version number to the service name (to make the service name
>> unique)
>> >
>> > Therefore, I've improved our deployment engine to deploy services by
>> > looking at the hierarchical path of the service. For example this
>> > allows us to deploy a service repository/services/foo/bar/version.aar.
>> > And also this allows us to deploy any number of services as follows.
>> > repository/services/versionService/1.0.0/version.aar
>> > repository/services/versionService/1.0.1/version.aar
>> Don't you think this is complex ? what is different between
>> "services/versionService/1.0.1/version.aar" and
>> "services/version-1.0.1.aar" ?. As far as I know second one is better
>> than the first one (and you do not need much modification to handle
>> that). Which is the commonly used approach for all sort of version
>> management. (am I missing something?)
>> >
>> > In the implementation, I've attached the hierarchical part of the
>> > service (versionService/1.0.1/) in front of the service name which is
>> > read from the services.xml. And also I've fixed the URI based
>> > dispatching logics to dispatch the services correctly.
>> Then how about addressing based dispatching ?
>> I remember the mess we had when someone introduce portName into the URL,
>> I think we still have issues with that (though no one uses the feature).
>> >
>> > This improvement doesn't affect any of the existing functionalities.
>> Of course it does? how do you make sure when you change the dispatcher
>> it does not break any of the existing features ? (we do not have enough
>> test cases to cover all the cases) I think I have enough experience in
>> Axis2, what when someone change something hoping that does not break
>> something.
>> > The only limitation of this is we can't deploy a RESTful service in
>> > this manner.
>> This is a problem right?
>> When the system move from one version to other, client will notice that
>> the service does not work any more?
>> > Those can only be supported at repository/service level. That is
>> > because, incoming URL of a RESTful service can contain '/' separated
>> > parameters to the service.
>> oh boy, you are making system tooooooo, complicated.
>>
>> I am sorry I am -1 on this approach,  we need to discuss this before we
>> implement.
>> In fact I remember we had some discussion on this at one of the
>> apachecon, there also we did not come to a conclusion.
>>
>> Thanks,
>> Deepal
>>
>
>
>
> --
> Thanks
> Afkham Azeez
>
> Blog: http://afkham.org
> Developer Portal: http://www.wso2.org
> WSAS Blog: http://wso2wsas.blogspot.com
> Company: http://wso2.com
> GPG Fingerprint: 643F C2AF EB78 F886 40C9  B2A2 4AE2 C887 665E 0760
>



-- 
Thanks
Afkham Azeez

Blog: http://afkham.org
Developer Portal: http://www.wso2.org
WSAS Blog: http://wso2wsas.blogspot.com
Company: http://wso2.com
GPG Fingerprint: 643F C2AF EB78 F886 40C9  B2A2 4AE2 C887 665E 0760

Reply via email to