The article emphasizes the importance of software systems facilitating evolution in functionality and technological upgrades, particularly in domains like finance, e-commerce, and transportation.
A systematic approach to Java software upgrades is discussed, focusing on upgrading technology without altering business functionality.
The article details a software upgrade project for an airline operations subdomain using Java, J2EE technologies, and various open-source software libraries.
Different technologies used in the application, including Java, EJB, and Oracle RAC, are highlighted in the 'As Is Technology Landscape' diagram.
Java upgrading considerations and the roadmap for Java SE support, with a focus on targeting Java 21 for the upgrade project, are explained.
Transitioning from Java EE to Jakarta EE for active enterprise Java development and upgrading EJB specifications to enhance compatibility with newer releases are discussed.
An approach for EJB upgrade using Hibernate and JPA implementations is outlined, along with considerations for upgrading the application container like WildFly.
The article addresses the dilemma of choosing component and container versions for technology upgrades, emphasizing the need for compatibility analysis.
A structured approach to reveal version compatibility using diagrams is explained, guiding the decision-making process for selecting compatible software versions.
The iterative project execution steps for technology upgrades are listed, including aligning container runtime, upgrading libraries, and conducting validation processes.
The conclusion underscores the importance of structured approaches and previous experience in planning and executing technology upgrade projects for software applications.