You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Christopher Moesel <Ch...@avid.com> on 2007/04/23 16:22:06 UTC

Service Versioning Strategies

Does CXF have a recommended service versioning strategy?

-Chris

Re: Service Versioning Strategies

Posted by Fred Dushin <fr...@dushin.net>.
Some may find this at least amusing, if not useful.

http://www.iona.com/hyplan/vinoski/pdfs/IEEE-The_More_Things_Change.pdf

On Apr 23, 2007, at 12:07 PM, Guy Pardon wrote:

>
> Agreed.
>
> I found the following article very useful (after reading it three  
> times):
>
> http://www.xml.com/pub/a/2004/10/27/extend.html
>
> The nice thing is that it describes compatible versioning so your  
> version upgrades don't ripple out all over.
>
> Guy
>
> On 23-apr-07, at 16:59, Dan Diephouse wrote:
>
>> No.  Stepping away from CXF - there is no BEST versioning strategy  
>> in my
>> mind. Only various bad ones :-)
>>
>> Some various things I've come up with are:
>> - Namespace versioning: Create a new schema namespace and new set  
>> of DTOs
>> for each new version
>> - Unified Domain Objects: In this scenario you try to map all the  
>> different
>> versions of your XML data to one set of domain objects. Easier  
>> said then
>> done... JiBX has some limited support for this, but not enough IMO  
>> to really
>> be able to do it.
>> - Deployment versioning: Run multiple versions of your application  
>> at the
>> same time and give each new version a new URL
>> - XSLT transformations
>>
>> There are many sub categories, but I tend to stick to Namespace  
>> versioning
>> as its relatively straightforward to do, although maintenance can  
>> be a pain.
>>
>> - Dan
>>
>> On 4/23/07, Christopher Moesel <Ch...@avid.com> wrote:
>>>
>>> Does CXF have a recommended service versioning strategy?
>>>
>>> -Chris
>>>
>>
>>
>>
>> -- 
>> Dan Diephouse
>> Envoi Solutions
>> http://envoisolutions.com | http://netzooid.com/blog
>
>


Re: Service Versioning Strategies

Posted by Sergey Beryozkin <se...@iona.com>.
This article advocates (implicitly), among other things, for the runtimes to support a forward compatibility, which is a great thing 
to do. On the other hand, changing namespaces is a big-bang style of versioning, sometimes it's necessary, but sometimes it's 
avoidable, it basically makes the newer version of the language be both backward and forward incompatible with the older version.

I'd vote with both hands for CXF to support a must-ignore-rule which is a basic prerequisiute for enabling a forward compatibility. 
This means that the CXF should let those people who are conscious of the costs associated with the namespace change to do the 
compatible evolution, specifically :

* JAXB 2.0+ allows to ignore unrecognized elements, this configuration option should be made available to users

Cheers, Sergey


----- Original Message ----- 
From: "Guy Pardon" <gu...@atomikos.com>
To: <cx...@incubator.apache.org>
Sent: Monday, April 23, 2007 5:07 PM
Subject: Re: Service Versioning Strategies


>
> Agreed.
>
> I found the following article very useful (after reading it three  times):
>
> http://www.xml.com/pub/a/2004/10/27/extend.html
>
> The nice thing is that it describes compatible versioning so your  version upgrades don't ripple out all over.
>
> Guy
>
> On 23-apr-07, at 16:59, Dan Diephouse wrote:
>
>> No.  Stepping away from CXF - there is no BEST versioning strategy  in my
>> mind. Only various bad ones :-)
>>
>> Some various things I've come up with are:
>> - Namespace versioning: Create a new schema namespace and new set  of DTOs
>> for each new version
>> - Unified Domain Objects: In this scenario you try to map all the  different
>> versions of your XML data to one set of domain objects. Easier said  then
>> done... JiBX has some limited support for this, but not enough IMO  to really
>> be able to do it.
>> - Deployment versioning: Run multiple versions of your application  at the
>> same time and give each new version a new URL
>> - XSLT transformations
>>
>> There are many sub categories, but I tend to stick to Namespace  versioning
>> as its relatively straightforward to do, although maintenance can  be a pain.
>>
>> - Dan
>>
>> On 4/23/07, Christopher Moesel <Ch...@avid.com> wrote:
>>>
>>> Does CXF have a recommended service versioning strategy?
>>>
>>> -Chris
>>>
>>
>>
>>
>> -- 
>> Dan Diephouse
>> Envoi Solutions
>> http://envoisolutions.com | http://netzooid.com/blog
> 


Re: Service Versioning Strategies

Posted by Guy Pardon <gu...@atomikos.com>.
Agreed.

I found the following article very useful (after reading it three  
times):

http://www.xml.com/pub/a/2004/10/27/extend.html

The nice thing is that it describes compatible versioning so your  
version upgrades don't ripple out all over.

Guy

On 23-apr-07, at 16:59, Dan Diephouse wrote:

> No.  Stepping away from CXF - there is no BEST versioning strategy  
> in my
> mind. Only various bad ones :-)
>
> Some various things I've come up with are:
> - Namespace versioning: Create a new schema namespace and new set  
> of DTOs
> for each new version
> - Unified Domain Objects: In this scenario you try to map all the  
> different
> versions of your XML data to one set of domain objects. Easier said  
> then
> done... JiBX has some limited support for this, but not enough IMO  
> to really
> be able to do it.
> - Deployment versioning: Run multiple versions of your application  
> at the
> same time and give each new version a new URL
> - XSLT transformations
>
> There are many sub categories, but I tend to stick to Namespace  
> versioning
> as its relatively straightforward to do, although maintenance can  
> be a pain.
>
> - Dan
>
> On 4/23/07, Christopher Moesel <Ch...@avid.com> wrote:
>>
>> Does CXF have a recommended service versioning strategy?
>>
>> -Chris
>>
>
>
>
> -- 
> Dan Diephouse
> Envoi Solutions
> http://envoisolutions.com | http://netzooid.com/blog


Re: Service Versioning Strategies

Posted by Dan Diephouse <da...@envoisolutions.com>.
No.  Stepping away from CXF - there is no BEST versioning strategy in my
mind. Only various bad ones :-)

Some various things I've come up with are:
- Namespace versioning: Create a new schema namespace and new set of DTOs
for each new version
- Unified Domain Objects: In this scenario you try to map all the different
versions of your XML data to one set of domain objects. Easier said then
done... JiBX has some limited support for this, but not enough IMO to really
be able to do it.
- Deployment versioning: Run multiple versions of your application at the
same time and give each new version a new URL
- XSLT transformations

There are many sub categories, but I tend to stick to Namespace versioning
as its relatively straightforward to do, although maintenance can be a pain.

- Dan

On 4/23/07, Christopher Moesel <Ch...@avid.com> wrote:
>
> Does CXF have a recommended service versioning strategy?
>
> -Chris
>



-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog