RS Components

JBoss platform and application upgrade

whilst Struts was easy to upgrade, the difficulties started with Seam/RichFaces

Project Synopsis

RS Components, a global distributor of industrial and electronic products, required Yobibyte Solutions to help upgrade the technology stack on their main website and supporting applications due to expiring support for the technologies being used.

The required work involved upgrading JBoss by two major versions. From a J2EE 1.4 specification to an EE 6 specification version. This included the Struts, Seam and RichFaces libraries.

As part of this upgrade, the applications were moving to new dedicated hardware in the data centre.

The Challenge

RS Components needed to upgrade the existing application suite to the supported technologies and create new environments on the new hardware in the new data center for the updated applications to be deployed in to.

This was to prove quite a challenge as the existing applications were made up of over a hundred Maven modules each of which had to be upgraded and integration tested with other interacting modules. Given that the versions of JBoss were two major versions apart, some of the existing code had to be rewritten to work with the new JBoss version.

The biggest challenge was always going to be the frontend modules that used Struts and Seam/RichFaces. Again the versions of Seam/RichFaces were major versions apart. We had to make sure that all of the existing functionality worked exactly the same as the production environment.

The Process

Working as part of a team, we began upgrading each of the individual Maven modules insofar as we could at that stage. In the beginning, it wasn’t possible to test the changes until the dependencies of any given module were also upgraded.

As more modules were upgraded we were able to start integration testing the modules. As we progressed, this identified modules that would require more work due to fundamental changes between JBoss versions.

Yobibyte Solutions had assigned Ian Collington to this project who had previously worked at RS Components in a permanent position. Ian took on the responsibility of starting the upgrade work on one of the bigger applications using his previous experience and knowledge.

This application used Apache Struts and Seam/RichFaces and whilst Struts was easy to upgrade, the difficulties started with Seam/RichFaces.

The latest version of RichFaces had fundamental changes in regards to the AJAX functionality. This required across the board changes to this functionality across many areas of this application. Further changes were also required in the server side Java Seam components. Fortunately as other people in the team became available Ian was able to get them working on specific issues or particular parts of the application.

Working together as a team we worked our way through the technical issues we faced in getting all the existing functionality working as it did before. Once the application had been upgraded it was deployed to the new environments for the start of testing.

Yobibyte Solutions was tasked with coordinating the defects that came in from the test team, reviewing and assigning out the defects to developers to work on. Indeed, Yobibyte Solutions was also involved in fixing the defects and working with the rest of the development team and the test team to get them fixed.

The Success

Yobibyte Solutions was part of a team working on a deeply complex technical platform upgrade.

By the end of the project, we had the new environments stood up with the upgraded applications running and all non-trivial defects fixed.

Tech Stack

Java 8
JBoss
Struts
Apache Tiles
JSP
Seam
JSF/RichFaces
Hibernate/JPA
SQL
JUnit
Mockito
Oracle
Maven