Portfolio Resume

Anson's Portfolio: AS/400 RPG Rewrite to Java

Last update: Jun-2021
AS/400 RPG Rewrite to Java.

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.
Functional requirements of the RPG revamp project.

Application Architecture

Application architecture.
Application architecture of the RPG revamp project.

System Architecture

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 Managerprogress tracking, dev team co-ordinate, status update, cost control.
System Architectapplication and system architecture design.
Technical Business AnalystRPG code analysis, report layout analysis.
DeveloperJava application development, testing, Kubernetes env setup & deploy.