Wednesday, November 18, 2009

A Web service layer versioning strategy using deprecated methods

Question: How to manage development, bugfixing and all type of both backward- and nonbackward compatible changes to a web service layer without suffering from escalating maintenance costs of having to manage lots of old versions?


Suggested solution: Do not allow different version of the WS interface. Never change namespace. Handle change by introducing replacement methods and mark the "old" method as deprecated. Leave the deprecated method in production for a grace period, giving all consumers sufficient time to move over to the new version. When all consumers have moved over, remove the deprecaded method altogether.

This strategy works for both WS and EJB interfaces.

See also http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/deprecation/deprecation.html

© Copyright 2009, Tomas Elfving

1 comment:

Anonymous said...

thanks !! very helpful post!