The feasibility of automated Oracle Forms to Java migration using Ispirer MnMTK has been proved!
In early 2017 Ispirer Systems was contacted by one of the global information technology consulting companies. The Company works with organizations to develop technology strategies and creates IT solutions that empower companies to enhance their businesses.
The Company was searching for a solution to help them perform the migration project for one of their major clients. The task was to move an application written in Oracle Forms to Java. As this direction of migration is specific and rarely requested, it was not implemented in Ispirer MnMTK. And Ispirer team offered to execute a Proof-of-Concept Stage to demonstrate to the Customer and its Client the feasibility of using Ispirer MnMTK for this task. After thorough discussions, the Company’s management took the decision to perform a POC and evaluate the result to decide whether to proceed with this solution for the whole project. A sub-section of the application with 7 Oracle Forms and 1 Object Library was selected.
Ispirer technical team has developed the architecture of the target application, the structure of the packages for generated classes, which allowed to achieve up to 100% of automation conversion of User Interface and up to 90% of automation conversion of Business Logic. MVC pattern has been implemented for correct communication between User Interface and Business Logic parts.
The Customer was provided with a weekly status call on the work progress.
During the POC the following works have been performed:
- Java classes-controls that emulated the behavior of Oracle Forms controls have been created:
- JFrame (In Java) – FormModule (In OracleForms)
- JTextField (In Java) – Item (In OracleForms)
- Menudef (In Java) – Default Menu (In OracleForms)
- MessageLine (In Java) – MessageLine (In OracleForms)
- Editor (In Java) – Editor (In OracleForms)
- Lov (In Java) – Lov (In OracleForms)
Inheritance and overriding helped Ispirer team to make Java Swing controls work in complete accordance with corresponding Oracle Forms controls. Java classes-controls have been gradually replenished with features in course of the POC and may be further replenished with new features if necessary.
- The latest possibilities of Java 8 have been used for implementing the inheritance between different components, such as Block, Canvas, ProgramUnit, Trigger, Window, which allowed to emulate Oracle Forms Business and User Interface Logic.
- The mechanism for hot keys handling has been developed.
- Oracle Forms system variables and methods, presented in the scope of the POC, have been implemented in Java.
The POC also included checking the converted results with the open source platform SonarQube, which is designed for continuous analysis and measurement of code quality. On the basis of the SonarQube reports, which were regularly presented to the Customer, the quality of the converted results has been improved.
Results & Advantages
After 2 months Ispirer delivered the sub-section of the application translated to Java Swing/Hibernate. In addition the Customer received the detailed report on the works performed including description of the main migration solutions and of the target code structure, cross-reference tables with comparison of source and target elements. Thus, Ispirer demonstrated that the technology functions as intended and proved the feasibility of automated Oracle Forms to Java migration.
The direction of migration from Oracle Forms to Java has been developed from scratch and now Ispirer MnMTK is ready to be used for automated migration of the rest of the client’s code (of course with the necessity to proceed with tool extensions in order to raise the level of automation and to decrease the necessity of manual post-migration interventions).
The Customer remained satisfied with the POC results and focused on further cooperation with Ispirer.