End-to-end migration reference for Cathay Cargo Terminal (CCT) — application server modernisation, database replatforming, and AWS cloud landing zone for internal, external, and mobile cargo operations at Hong Kong International Airport.
A three-axis modernisation programme for Cathay Cargo Terminal — replatforming the Java application tier, migrating the Oracle data tier to PostgreSQL, and relocating workloads from on-premises data centres to AWS.
Scope summary: CCT operates mission-critical cargo terminal systems supporting import/export cargo handling, trucking, airline messaging, and regulatory compliance at HKIA. The current stack runs on Oracle WebLogic Server 12.x with Oracle Database hosted on-premises. The target state is JBoss EAP 8 (WildFly-based) on AWS with Amazon Aurora PostgreSQL, while preserving integrations with aviation industry platforms (SITA, ACCS, GLS, HKIA One Data Platform) and Cathay Pacific Airways corporate systems.
Three migration axes
Axis 1 — Application server
WebLogic 12.x → JBoss EAP 8
Repackage Java EE / Jakarta EE applications (WAR/EAR), remap JNDI and datasources, migrate JMS, and retarget deployment descriptors from WebLogic-specific to portable or JBoss-specific configuration.
Axis 2 — Database
Oracle → PostgreSQL
Schema conversion, PL/SQL to PL/pgSQL, sequence and identity migration, Oracle-specific SQL rewrite, and cutover with minimal downtime using CDC and dual-write strategies.
Axis 3 — Infrastructure
On-premises → AWS
Landing zone, VPC networking, compute (EC2/EKS), managed database (Aurora), load balancing, WAF, observability, and hybrid connectivity during transition.
Source → target map
On-prem
Oracle WebLogic 12.x
Clustered managed servers, Node Manager, JNDI, JMS queues, Work Managers
→
AWS
JBoss EAP 8
Standalone or domain mode on EC2/EKS. Undertow servlet container. Elytron security. Messaging via ActiveMQ Artemis.
On-prem
Oracle Database 11g/12c/19c
RAC or single-instance. PL/SQL packages, sequences, synonyms, materialised views, DB links to CPA systems
→
AWS
Amazon Aurora PostgreSQL
Multi-AZ, read replicas, automated backups, Performance Insights. pglogical or DMS for migration.
On-prem
Physical / VMware infrastructure
Data centre at HKIA vicinity. Firewalls, load balancers, internal DNS, file shares, batch schedulers
Internal user authentication for terminal staff applications
→
Cloud IdP
Azure Entra ID (Entra ID)
SAML 2.0 / OIDC for internal web & mobile apps. Conditional Access, MFA, group-based RBAC.
Section 02
Application Portfolio
CCT operates multiple user-facing channels segmented by audience, network zone, and authentication model. Each channel maps to one or more deployable units on the application server tier.
🏢
Internal
CCT Internal Web Application
Terminal operations for CCT staff — cargo acceptance, build-up/break-down, ULD management, warehouse control, and supervisor dashboards. Authenticated via Azure Entra ID (corporate SSO).
📱
Internal
CCT Internal Mobile Application
Rugged-device and tablet apps for ramp, warehouse, and gate staff. Offline-capable where required. Entra ID via MSAL / OAuth 2.0 mobile flows. API backend on JBoss.
🌐
External — Internet
Agents & Freighters Portal
Public-facing web portal for freight forwarders and general sales agents (GSAs). Booking enquiries, status tracking, document upload. Internet zone with WAF, rate limiting, and separate security realm.
🚛
External — Mobile
Trucker Mobile Application
Driver-facing app for truck entry/exit, e-form submission, queue management, and cargo collection at CCT gates. Integrates with ACCS and terminal access control.
✈️
Airline
Airline Web Application
Dedicated portal for airline users — flight manifests, cargo allocations, special handling requests, and messaging. Role-based access per airline code (IATA).
⚙️
Backend
Integration & Batch Services
MDB listeners, scheduled EJB timers, file-drop processors, and REST/SOAP adapters for SITA, ACCS, GLS, HKIA One, and Cathay Pacific corporate interfaces. Runs as EAR modules on JBoss.
Network & security zones
Zone
Applications
Auth
AWS placement
Corporate / Internal
CCT Web, CCT Mobile (staff)
Azure Entra ID (SAML/OIDC)
Private subnets + ALB. AWS Client VPN or Direct Connect from CPA network
DMZ — Internet
Agents & Freighters, Trucker Mobile API, Airline Portal
Local accounts + MFA, API keys, airline SSO federation
Public ALB + CloudFront + AWS WAF. Separate JBoss instances / namespaces
Integration
SITA/ACCS/GLS adapters, CPA data feeds
Mutual TLS, IP allowlists, message-level security
Private subnets. NLB or VPC endpoints. No direct internet egress
Deployment recommendation: Segregate internal (Entra ID) and external (Internet-facing) workloads onto separate JBoss EAP clusters or EKS namespaces with distinct security domains. This mirrors the current WebLogic split between internal and DMZ managed servers and reduces blast radius for external-facing applications.
Section 03
External & Corporate Integrations
CCT sits at the centre of the HKIA cargo ecosystem. Migration must preserve message flows, SLAs, and regulatory data exchange with aviation industry platforms and Cathay Pacific Airways.
Integration landscape
SITA Type B / MQ
↔
CCT JBoss Integration tier
↔
ACCS HK Customs
GLS Logistics
↔
CCT JBoss
↔
HKIA One Data Platform
Cathay Pacific Corporate systems
↔
CCT JBoss
↔
Aurora PostgreSQL
SITA
SITA Messaging & Network Services
Industry-standard cargo messaging — FWB, FHL, FSU, FBL (cargo IMP messages). Typically via SITA MQ or Type B network. JBoss MDBs consume/produce messages. Migration impact: MQ connection factories move from WebLogic JMS foreign JMS to ActiveMQ Artemis or native IBM MQ client. IP whitelisting must be updated for AWS egress IPs or Direct Connect.
ACCS
Air Cargo Community System
Hong Kong Customs & Excise cargo clearance platform. Electronic cargo information submission, release notifications, and trucker gate pass validation. Migration impact: API endpoints and certificate-based authentication must be re-registered with ACCS for new AWS endpoints. Trucker mobile app is a primary consumer.
GLS
Global Logistics System
Logistics data exchange — shipment tracking, status updates, and inter-terminal messaging. Migration impact: Validate file-based vs API-based integration. SFTP drop zones may move to S3 with event-driven Lambda triggers replacing on-prem file watchers.
HKIA One Data Platform
HKIA Unified Data Platform
Airport Authority of Hong Kong (AAHK) data sharing platform for operational and analytics data. Migration impact: Re-establish data pipeline connectivity from AWS (API, SFTP, or Kafka). Confirm data residency and AA governance requirements for cloud-hosted sources.
Cathay Pacific Airways
Parent Company — Corporate Data Interfaces
Bi-directional data flows between CCT and Cathay Pacific corporate systems — flight schedules, cargo capacity, revenue accounting, HR/identity (Entra ID federation), and operational reporting. May include database links, REST APIs, ETL batch files, or enterprise service bus (ESB) messaging. Migration impact: Replace Oracle DB links with API-based integration or AWS PrivateLink / VPN to CPA network. Entra ID app registrations and SAML metadata must be updated for new JBoss callback URLs on AWS.
Integration cutover risk: External partners (SITA, Customs/ACCS, AAHK) require advance notice and parallel-run periods. Plan a connectivity freeze window per partner — do not migrate all interfaces in a single big-bang. Maintain on-prem integration endpoints as fallback during hypercare.
Section 04
WebLogic 12.x → JBoss EAP 8 Migration
JBoss EAP 8 is the supported enterprise distribution of WildFly, targeting Jakarta EE 10. Migration from WebLogic requires application assessment, descriptor changes, and infrastructure reconfiguration.
Code upgrade for removed APIs (javax → jakarta namespace in EE 10)
Application migration steps
Step 01
Discovery & inventory
Catalog all EAR/WAR deployments, shared libraries, JNDI bindings, JMS destinations, EJB timers, and WebLogic-specific code (weblogic.* imports).
Step 02
Compatibility assessment
Run Red Hat Migration Toolkit for Applications (MTA/MTA) or Windup against each module. Flag javax → jakarta, deprecated EJB APIs, and Oracle JDBC calls.
Step 03
Refactor & retarget
Update persistence.xml for PostgreSQL dialect. Replace WebLogic JMS with Artemis. Externalise config to MicroProfile Config or environment variables for 12-factor AWS deployment.
Step 04
Deploy & validate on JBoss
Deploy to JBoss EAP 8 on AWS dev environment. Run smoke tests per application channel. Compare response times and memory footprint against WebLogic baseline.
Azure Entra ID integration on JBoss
Internal user authentication flow
User → CCT Web/MobileRedirect to Entra ID (OIDC)Token returned to JBoss (Elytron OIDC)RBAC via Entra groups → JBoss rolesSession / JWT to API tier
Entra ID checklist: Register new app(s) in Azure portal · Configure redirect URIs for AWS ALB hostnames · Map Entra security groups to JBoss roles via oidc-role-mapper · Enable Conditional Access (MFA) · Update mobile app MSAL config with new API base URL · Coordinate with Cathay Pacific IAM team for federation trust
Section 05
Oracle → PostgreSQL Migration
Replatforming from Oracle to Amazon Aurora PostgreSQL reduces licensing cost and aligns with open-source database operations on AWS. This is typically the highest-risk axis due to PL/SQL, data types, and performance characteristics.
Common Oracle → PostgreSQL conversion patterns
Oracle construct
PostgreSQL equivalent
Notes
VARCHAR2 / NVARCHAR2
VARCHAR / TEXT
Remove length semantics differences. Watch empty string vs NULL behaviour
NUMBER
NUMERIC / INTEGER / BIGINT
Choose appropriate precision per column
DATE / TIMESTAMP
TIMESTAMP / TIMESTAMPTZ
Oracle DATE includes time; PostgreSQL DATE does not. Use TIMESTAMPTZ for audit columns
SEQUENCE + trigger
GENERATED ALWAYS AS IDENTITY or SERIAL
Prefer identity columns in PG 15+. Migrate sequence current values
PL/SQL packages / procedures
PL/pgSQL functions / procedures
Manual rewrite required. Use AWS SCT or ora2pg for initial conversion, then refine
DECODE / NVL / SYSDATE
CASE / COALESCE / NOW()
Search-replace in application SQL and stored procedures
ROWNUM / CONNECT BY
LIMIT / WITH RECURSIVE
Hierarchical queries need rewrite. ROWNUM pagination → LIMIT/OFFSET or keyset
DBMS_LOB / BLOB
BYTEA / Large Objects
Consider S3 for document storage instead of DB blobs
Avoid cross-DB links in cloud. Replace with REST/ETL to CPA systems
Migration tooling & approach
Schema
AWS Schema Conversion Tool (SCT)
Automated DDL conversion from Oracle to PostgreSQL. Generates assessment report showing unsupported objects. Use as starting point — expect 60–80% automation for typical cargo schemas.
Data
AWS Database Migration Service (DMS)
Full load + CDC replication from Oracle to Aurora PostgreSQL. Keeps target in sync during parallel-run. Monitor lag and table-level validation.
Validation
Data reconciliation
Row counts, checksums, and business-rule validation per table. Focus on cargo manifest, ULD, and customs declaration tables first.
Database cutover strategies
Recommended — Parallel run
Dual-write with DMS CDC
JBoss apps on AWS write to Aurora PostgreSQL. DMS replicates back to Oracle (or vice versa) during transition. Compare outputs for 2–4 weeks. Lowest risk for 24/7 cargo operations.
Alternative — Big bang
Maintenance window cutover
Stop writes, final DMS sync, switch JBoss datasource to PostgreSQL, resume. Requires extended maintenance window (typically weekend). Higher risk — only if cargo volumes allow.
Oracle-specific risks for CCT: Heavy use of PL/SQL business logic in stored procedures (cargo validation rules, customs calculations) · Oracle AQ or advanced queuing tied to JMS · Partitioned tables for historical cargo records · Fine-grained audit (FGA) triggers. Budget significant effort for stored procedure rewrite and performance testing on PostgreSQL.
Section 06
On-premises → AWS Cloud Architecture
Target landing zone in AWS Asia Pacific (Hong Kong) region — ap-east-1 — with hybrid connectivity to on-premises and partner networks during migration.
Managed messaging with bridge to SITA network via VPN. Alternatively, embed Artemis in JBoss.
Hybrid period: During migration, maintain AWS Site-to-Site VPN or Direct Connect to on-premises and Cathay Pacific corporate network. JBoss on AWS can reach on-prem Oracle (via DMS) and on-prem MQ endpoints while integrations are progressively cut over. Decommission on-prem only after all partner interfaces are validated on AWS endpoints.
Section 07
Migration Phases & Timeline
A phased approach de-risks the three-axis migration. Recommended sequence: AWS landing zone first, then database migration, then application server cutover per channel.
Wave 1: Integration/batch services (lowest user impact)
Wave 2: Airline web portal
Wave 3: Agents & Freighters + Trucker mobile
Wave 4: Internal web & mobile (Entra ID)
Parallel-run & hypercare per wave
Phase 5 — Decommission (4–6 weeks)
On-prem retirement
Oracle license termination
WebLogic cluster shutdown
On-prem hardware decommission
Archive audit logs to S3 Glacier
Post-implementation review & handover
Indicative total duration: 12–18 months for a programme of this complexity, assuming a dedicated migration team of 8–12 engineers (app, DBA, infra, integration, QA) and active stakeholder engagement from Cathay Pacific IAM, SITA, and AAHK integration teams.
Section 08
Cutover, Risks & Testing Checklist
Cargo terminal systems operate 24/7. Cutover planning must account for peak import/export windows, flight schedules, and regulatory reporting deadlines.
Top risks & mitigations
Risk
Impact
Likelihood
Mitigation
PL/SQL conversion gaps
Data corruption, incorrect cargo calculations
▲ Medium
Parallel-run with reconciliation. Dedicated DBA review of all stored procedures.
DR test: Aurora failover completes within agreed RTO (target: < 15 minutes)
Security scan: no critical/high vulnerabilities on external-facing endpoints
Rollback procedure documented and rehearsed (revert DNS/ALB to on-prem WebLogic)
Design rationale — frequently asked questions
Why migrate from WebLogic to JBoss EAP 8?
WebLogic licensing costs, end-of-support considerations, and alignment with open-source Java EE standards. JBoss EAP 8 provides enterprise support via Red Hat, runs on Java 17/21, supports Jakarta EE 10, and deploys natively on AWS without vendor lock-in to Oracle infrastructure.
Why PostgreSQL over Oracle on AWS?
Eliminates Oracle licensing in the cloud (CPU-based licensing is expensive on AWS). Aurora PostgreSQL is fully managed, supports Multi-AZ HA, and integrates with AWS DMS for migration. Open-source ecosystem reduces long-term TCO for CCT.
How do you handle 24/7 cargo operations during cutover?
Progressive wave migration with parallel-run periods. DMS CDC keeps Oracle and PostgreSQL in sync. Each wave has a rehearsed rollback plan. Integration partners get advance notice. Cutover windows align with lowest cargo volume periods (typically mid-week nights).
How does Azure Entra ID work with apps hosted on AWS?
Entra ID is cloud-agnostic for OIDC/SAML federation. JBoss Elytron OIDC client authenticates users against Entra ID regardless of where JBoss is hosted. Redirect URIs point to AWS ALB hostnames. Token validation uses Entra's JWKS endpoint over HTTPS.
What is the hardest part of this migration?
Typically the Oracle → PostgreSQL stored procedure conversion combined with preserving real-time SITA/ACCS integration SLAs. Application server migration (WebLogic → JBoss) is well-understood with tooling (MTA/Windup), but database and integration cutover require the most planning and testing for a cargo terminal environment.