Skip to content

Progress to Java Migration: 2 Million Lines Modernized in 50 Days

Published on 11/10/2019

Progress to Java Migration: 2 Million Lines Modernized in 50 Days

Progress to Java Migration: Eliminating Legacy Dependencies at Scale

How an Enterprise Software Publisher Modernized 2 Million Lines of Code in 50 Days

  • Industry: Enterprise Software (HR, Finance, Supply Chain)
  • Challenge: Progress/OpenEdge legacy creating talent and cost issues
  • Solution: Automated migration to modern Java stack
  • Results: 2M lines migrated, 450 scenarios validated, legacy eliminated
  • Timeline: 50 days automated migration (vs. years manual)

The Challenge: When Your Technology Stack Becomes Your Biggest Risk

A leading enterprise software publisher providing systems for retail, finance, and chamber organizations faced a critical challenge: their rich application portfolio built on Progress/OpenEdge was becoming unsustainable.

The Legacy Technology Trap

Organizations dependent on aging technology stacks face escalating challenges:

Technical Obsolescence

  • Expensive licensing: Progress and associated frameworks creating cost burden
  • Limited evolution: Old technology constraining innovation
  • Integration challenges: Difficult to connect with modern systems
  • Performance limitations: Legacy architecture unable to scale
  • Security concerns: Aging platforms with fewer security updates

Talent Crisis

  • Shrinking talent pool: Few developers with Progress expertise
  • Market misalignment: Skills required don’t match available candidates
  • Recruitment difficulties: Can’t hire for maintenance or evolution
  • Knowledge loss: As Progress developers retire, expertise disappears
  • Training resistance: New developers don’t want to learn obsolete tech

Business Impact

  • Growing technical debt: Accumulating faster than can be addressed
  • Time-to-market delays: Slow evolution constraining business
  • Competitive disadvantage: Modern competitors moving faster
  • Cost escalation: Maintenance consuming ever-larger budget share
  • Customer concerns: Clients questioning platform longevity

Why Manual Migration Wasn’t Viable

For an application portfolio of this scale, traditional approaches fail:

  • Timeline impractical: Manual rewrite would take years
  • Cost prohibitive: 2M lines Γ— rewrite cost = budget explosion
  • Risk unacceptable: Years of parallel maintenance introducing errors
  • Business disruption: Can’t freeze development for years
  • Knowledge transfer: Documenting all business logic manually impossible

Why the Publisher Chose Byoskill

The publisher needed a partner who could:

  1. Automate at scale - Handle millions of lines systematically
  2. Preserve business logic - Maintain complex rules without loss
  3. Minimize disruption - Enable incremental migration
  4. Modern architecture - Not just translate, but improve
  5. Proven technology - Demonstrated success on complex migrations

Our Unique Approach

We developed an automated migration methodology based on three phases:

  • Pre-study/POC: Prove feasibility and scope effort
  • Automated migration: Transform code systematically
  • Incremental deployment: Migrate in production-compatible stages

This approach transforms economically impossible projects into viable modernization initiatives.


Our Approach: Three-Phase Automated Migration

Phase 1: Pre-Study and Proof of Concept

Objective: Demonstrate feasibility and precisely scope the effort

Assessment Activities:

  • Analyzed complete Progress application portfolio
  • Categorized code complexity and patterns
  • Identified migration challenges and risks
  • Evaluated target architecture options
  • Estimated effort and timeline

POC Validation:

  • Selected representative application subset
  • Executed automated migration
  • Validated business logic preservation
  • Tested performance characteristics
  • Confirmed approach viability

Key Decision: Target Architecture Selection

Options Evaluated:

  1. Java 2-Tier: Client-heavy architecture with database

    • Simpler migration
    • Limited scalability
    • Desktop-focused
  2. Java 3-Tier βœ…: Client-light with application server

    • Modern architecture
    • Cloud-ready
    • Web and mobile support
    • Selected approach

Phase 2: Automated Migration Execution (50 Days)

Objective: Transform entire application portfolio systematically

Migration Scope:

  • 2 million lines of Progress code (excluding comments)
  • 14,000 files covering payroll and budget applications
  • 450 functional scenarios including 52 performance-critical paths
  • Database migration from Progress to relational (MySQL/Oracle/PostgreSQL)

Automated Transformations:

1. Database Migration

  • Progress database β†’ MySQL/Oracle/PostgreSQL
  • Tables, views, sequences, triggers converted
  • Data type mapping and optimization
  • Index strategy modernization

2. Data Access Layer

  • Legacy Progress data access β†’ Modern frameworks
  • Options: Hibernate, MyBatis, Spring JDBC
  • Connection pooling and optimization
  • Transaction management modernization

3. Business Logic Migration

  • Progress procedures and includes β†’ Java classes
  • Complex business rules preserved exactly
  • Code organization improved (Maven/Gradle packages)
  • Business logic testability enhanced

4. Service Layer Creation

  • REST/SOA services generated
  • Options: Axis, Spring MVC, Jersey
  • API documentation auto-generated
  • Integration points clearly defined

5. User Interface Modernization

  • Progress forms/windows/frames β†’ Modern UI
  • Options: Swing, SWT, JavaFX, Web (Spring MVC)
  • Improved user experience
  • Responsive design capabilities

6. Batch Processing

  • Progress batch jobs β†’ Spring Batch or Java main
  • Scheduled execution framework
  • Error handling and retry logic
  • Monitoring and logging

7. Reporting Transformation

  • Legacy reports β†’ JasperReports
  • Modern report design
  • Multiple output formats
  • Parameterization and scheduling

Phase 3: Incremental Deployment Strategy

Objective: Minimize production disruption through gradual rollout

Deployment Approach:

  • Pre-production validation: Complete testing before any production change
  • Component-by-component: Migrate services incrementally
  • Parallel operation: Old and new coexist during transition
  • Gradual cutover: Users migrated in controlled phases
  • Rollback capability: Quick return to previous version if needed

Validation Framework:

  • All 450 functional scenarios executed
  • Performance benchmarks for 52 critical paths
  • No performance degradation detected
  • User acceptance testing in phases
  • Production monitoring during transition

Results: Modern Platform, Preserved Business Value

Quantified Outcomes

Migration Success

  • βœ… 2 million lines successfully transformed
  • βœ… 14,000 files converted from Progress to Java
  • βœ… 450 scenarios validated including all performance-critical paths
  • βœ… Zero performance degradation in production
  • βœ… 100% business logic preserved accurately

Technology Improvements

  • βœ… Progress eliminated: No more expensive licensing
  • βœ… Modern Java stack: Spring, Hibernate, REST
  • βœ… 3-tier architecture: Scalable, cloud-ready
  • βœ… Latest Java version: Security and performance benefits
  • βœ… Standard tools: Industry-standard development stack

Business Benefits

  • βœ… Talent availability: Can now hire Java developers
  • βœ… Cost reduction: Eliminated Progress licensing fees
  • βœ… Evolution velocity: Faster feature development
  • βœ… Customer confidence: Modern platform reassures clients
  • βœ… Integration capability: Easy connection with modern systems

Operational Excellence

  • βœ… Maintainable code: Clear structure, good documentation
  • βœ… Incremental success: Phased deployment minimized risk
  • βœ… Production stability: No disruption during migration
  • βœ… Team satisfaction: Developers working on modern stack

Client Perspective

The software publisher achieved transformational results:

  • Economic viability: Automated approach made migration affordable
  • Risk mitigation: Incremental deployment prevented disruption
  • Business continuity: Functional evolution continued during migration
  • Team confidence: Proven technology removed uncertainty
  • Strategic positioning: Modern platform enabling growth

Technical Insights: Progress to Java Migration Architecture

The Progress/OpenEdge Challenge

Why Progress Migration is Complex:

  1. Proprietary 4GL: Not standard SQL or programming language
  2. Integrated database: Progress RDBMS tightly coupled
  3. Unique syntax: Language constructs without direct Java equivalents
  4. Business logic density: Complex rules in compact code
  5. Performance tuning: Progress-specific optimizations

Target Architecture Design

Modern 3-Tier Java Architecture:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Presentation Layer              β”‚
β”‚  (Web, Desktop, Mobile Clients)         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ REST/SOAP APIs
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      Application/Service Layer          β”‚
β”‚   (Spring MVC, Business Logic)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ ORM/JDBC
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Data Access Layer               β”‚
β”‚  (Hibernate, MyBatis, Spring JDBC)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      Relational Database                β”‚
β”‚  (MySQL, Oracle, PostgreSQL)            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Migration Technology Comparison

AspectProgress/OpenEdgeModern Java Stack
LanguageProgress 4GLJava
DatabaseProgress RDBMSMySQL/Oracle/PostgreSQL
ArchitectureMonolithic3-Tier, Microservices-ready
UI OptionsCharacter/GUIWeb, Desktop, Mobile
IntegrationProprietaryREST, SOAP, standard APIs
Talent PoolShrinkingGrowing
LicensingExpensiveOpen source options
CloudLimitedNative support

Automation vs. Manual Comparison

For 2 Million Lines of Code:

ApproachTimelineCostRiskBusiness Logic Preservation
Manual Rewrite3-5 years$5-10M+Very HighErrors likely
Automated Migration βœ…50 daysFractionControlled100% accurate

Key Takeaways from This Legacy Migration Project

1. Automation Makes Impossible Projects Viable

2M lines manual rewrite = years and millions. Automated migration = 50 days. Scale demands automation.

2. Business Logic Preservation is Critical

The value isn’t in the Progress code - it’s in the business rules. Automation preserves this perfectly.

3. Incremental Deployment Reduces Risk

All-at-once is too risky. Component-by-component migration maintains business continuity.

4. POC Eliminates Uncertainty

Proving the approach on a subset builds confidence and enables accurate scoping.

5. Modern Architecture, Not Just Translation

Don’t just convert Progress to Java - redesign for 3-tier, cloud-ready architecture.

6. Talent Availability Matters

Moving from Progress to Java transforms hiring from impossible to easy.

7. Performance Must Be Validated

All 450 scenarios, especially 52 critical paths, must prove no degradation.

8. Licensing Costs Add Up

Eliminating Progress fees provides ongoing savings that justify migration investment.


Facing Legacy Technology Migration Challenges? Let’s Talk.

If your organization is struggling with:

  • Progress/OpenEdge or other legacy platforms
  • Expensive licensing for aging technology
  • Inability to hire developers for legacy systems
  • Growing technical debt and maintenance costs
  • Need to modernize without business disruption
  • Integration challenges with modern systems
  • Customer concerns about platform longevity

We can help.

Next Steps:

  1. Free Migration Assessment - We’ll evaluate your situation:

    • Application portfolio analysis
    • Code complexity assessment
    • Target architecture recommendations
    • Timeline and cost estimates
    • ROI projections
  2. Proof of Concept - Prove the approach:

    • Select representative application subset
    • Execute automated migration
    • Validate business logic preservation
    • Demonstrate performance
    • Build stakeholder confidence
  3. Full Migration Partnership - Complete transformation:

    • Phased migration execution
    • Incremental deployment
    • Team training
    • Production support
    • Ongoing optimization

Schedule Free Migration Assessment



About This Project

Client: Leading Enterprise Software Publisher
Sector: HR Systems, Financial Systems, Supply Chain Management
Markets Served: Retail, Consulting Firms, Chamber Organizations
Scale: 2M lines of code, 14,000 files
Year: 2019
Technologies: Progress/OpenEdge β†’ Java, Spring, Hibernate, MySQL/Oracle/PostgreSQL, REST/SOAP, JasperReports
Services Provided: Automated code migration, architecture modernization, database migration, incremental deployment support