Project Background
It was a project under public sector department, to rewrite AS/400 RPG printing programs by using Java.
There were about 15-20 reports that generated by RPG program, and printed by AS/400 integrated laserjet and inkjet printers.
The goal was to transform the AS/400 report spool file to pdf format.
The pdf reports would be made open and accessible through RESTful API.
This was definitely a challenging project due to the complexity of legacy RPG million lines of code logic.
A lot of effort has been put into RPG code analysis,
line by line code review was crucial to ensure the PDF report layout exactly the same as RPG one.
Functional Requirements
Rewriting RPG printing programs using Java, to generate PDF reports with the exact same layout.
Functional requirements of the RPG revamp project.
Application Architecture
Application architecture of the RPG revamp project.
System Architecture
System architecture of the RPG revamp project.
Technology Stack
Category |
Details |
Java JDK |
Java 1.8
javaee-api 8.0
|
Java printing |
iText 7.1.11 |
Java persistence |
jt400-jdk8 10.3
spring-data-jpa 2.2.0.RELEASE
Hibernate 5.4.6.Final
|
Spring |
Spring Framework 5.2.0.RELEASE |
Java logging |
tinylog 1.3.5 |
Java util |
Apache commons-lang3 3.0
Apache commons-dbcp2 2.7.0
Apache commons-io 2.6
Apache commons-collections 2.1.1
Google guava.guava 29.0-jre
Google guava-collections r03
lombok 1.18.12
|
CI/CD build & test |
JUnit 4.12
Maven 3.5.0
Jenkins 2.263.4
Github
|
Database |
iSeries AS/400 v6 |
IDE |
Eclipse Java EE Oxygen 1 Release 4.7.1
AS400 Program Development Manager (PDM)
|
Deployment platform |
Kubernetes 1.7 on RHEL 7
|
Roles & Responsibilities
I worked as the software engineer and IT project manager, responsible for the below end-to-end implementation tasks:
IT Project Manager:
progress tracking, dev team co-ordinate, status update, cost control.
System Architect:
application and system architecture design.
Technical Business Analyst:
RPG code analysis, report layout analysis.
Developer:
Java application development, testing, Kubernetes env setup & deploy.