Upgrading to the latest TAO version

Last week I assisted one of our customers with an upgrade of TAO 1.4 to TAO 2.0.2. Initially the developers where very concerned and expected a lot of problems. They already tried to upgrade in the past but got a lot of errors and didn't know how they could resolve these.

We started with the port to just see what has to be done and whether we need to make improvements in the latest TAO version to make upgrades easier. The first issue hit was the fact that some application code included ace/OS_String.h. This file has been removed from the code base. In most cases the include ended up not to be needed, in some cases we had to include a different ace/OS_NS_*.h header file.

Some of the application code did use the ACE_*_cast macros (const/static/dynamic). These can easily be replaced with C++ casts by hand or use the bin/ACE-casts-convert script. In this specific upgrade we where lazy and just copied the definition of the ACE_*_cast macros from 1.4 and pasted them in our ace/config.h file.

Other parts of the system did use the ACE exception macros, these have been replaced with C++ try/casts using the TAO/bin/rm_exception_macros.pl script.

As last action in the code we had to replace some anonymous IDL types with some explicit typedefs in IDL.

In the customer specific build scripts we only had to add the TAO AnyTypeCode library and than we manged to compile and link all application code.

At the end the upgrade from TAO 1.4 to TAO 2.0.2 was pretty smooth and was around two days of work. The biggest amount of work left is now the retesting of the full application.

Your rating: None Average: 2.5 (4 votes)