1 Reply Latest reply on Oct 11, 2005 8:59 PM by dcminter

    Toolkit Development Process - and API maintenance

      I'm interested in understanding how Sun and other 'toolkit' providers manage their software development cycles to maintain public APIs from release to release.

      I am currently part of a large software project which plans to deploy a large existing codebase as a toolkit for others to develop on top of. I'm concerned about our ability to manage changes to our public APIs once we provide our toolkit to external developers. Once they start extending our classes and interfacing with our APIs, we have to be very careful about what we change - and ideally we should have some way to 'deprecate' things.

      How does a company like Sun manage this for the JDK? Or how do other companies that do similar things work through this? Anyone know of any good reference material (books / online / etc.)?

      Aaron Schmidt
        • 1. Re: Toolkit Development Process - and API maintenance
          None of this is official as far as I know, but Sun appear to follow a few very simple rules:

          Proper use of namespaces - if you write code that relies on com.sun.* packages then that's your problem. Code which relies on java.* or javax.* and the rest of the public APIs will generally work from release to release.

          Addition of new functionality is favoured over changes to, or deletion of, old functionality. For example, the nio classes did not result in the removal of the existing io classes.

          Deprecated methods and classes are marked as such, but not removed for several release cycles.

          I don't see why you would need to do anything more complex than follow these quite simple rules. Obviously you would need a suitable unit test suite to ensure that your API is consistent from release to release, but you should be doing that anyway.