Regarding the request to upgrade additional APIs if they are close enough:
In general a close match API is one that has similar classes and members -- at least in the areas used by your application. Similar means the number of objects and arguments involved in setting up and making calls is the same and the exception raised by the calls are conceptually the same. Basically if the code to instantiate objects and make calls to the API can be updated "in place" without having to restructure the code, then it is a close match. If additional objects/state must be declared and instantiated or if code has to be restructured, then it is not a close match. Note that most API upgrades are a mix -- mostly close, but a few things are gone, or very different. The introduction of a little runtime support can help in these cases.