Manipulating Chain of Java Extensions for the upgrade/installation process


I recently had to upgrade a not too big but quite complex system. The original environment includes Maximo and ICD, and two large customization packages, one extended the other (let’s call them package XXX extended by package YYY). The target system is the latest Maximo + ICD 7.6.1, plus 4 add-ons which include Oil & Gas and Utilities.

Customization were written by 3 different third parties over a long period of time and the source code was lost. This posed some challenges related to preserving customization and I had to spend a bit of time to figure it out. Below are some of the gotchas I learnt after the project:

Problem 1: Ensure customization are preserved after upgrade

After reviewing the SMP folder, I found about 300 extended java class files, but the product.xml files only cover about 20-30% of them; worse, some data are not even up-to-date. After the initial attempt to correct these files, I decided to simply ignore them, and build new product.xml files from scratch. Below are some of the key steps I had to do: