Skip to content

Epic: COBOL→Java conversion -- configurable target, driven by the verified mainframe skeleton #3625

Description

@squid-protocol

The COBOL→Java path today generates a fixed Spring Boot scaffold, with Spring Boot 3.2.4, Java 17, Maven, PostgreSQL, Lombok, JPA and Batch all hardcoded, from the refactoring stage's schemas alone. The engine now extracts and verifies the whole CICS skeleton (#3445, #3489, #3575), but almost none of it reaches the Java side. This epic does two things:

  • makes the target configurable, via a YAML config;
  • makes the generator consume the verified skeleton, layer by layer.

It ends with proof that the generated code behaves like the COBOL.

Order:

  1. Java conversion: YAML target config (Java / Spring Boot versions, build tool, DTO style, database, features) #3613 YAML target config: the foundation every generator reads.
  2. CI: compile the generated Spring Boot output (no Java toolchain in CI today) #3121 Compile the generated output in CI, across a config matrix.
  3. Java conversion: hand the verified mainframe skeleton to the generator #3614 Hand the verified skeleton (with verification tiers) to the generator: the foundation for 4-11.
  4. Java conversion: CICS transactions + COMMAREA / channel contracts -> REST endpoints and request / response DTOs #3615 Transactions + COMMAREA / channels → REST endpoints and DTOs
  5. Java conversion: LINK / XCTL / CALL targets (incl. data-driven and remote SYSID) -> service-to-service calls #3616 LINK / XCTL / CALL (data-driven, remote) → service calls
  6. Java conversion: CICS FILE (VSAM) operations + FILE-CONTROL / IDCAMS -> Spring Data repositories #3617 CICS FILE (VSAM) → Spring Data repositories
  7. Java conversion: embedded DB2 (table access + DCLGEN) -> repositories, dialect per config #3618 Embedded DB2 → repositories
  8. Java conversion: BMS screens + symbolic maps -> view models and (per config) web views #3619 BMS screens + symbolic maps → view models / web views
  9. Java conversion: TS / TD queues, containers and MQ -> messaging adapters #3620 Queues + MQ → messaging adapters
  10. Java conversion: units of work and handlers -> @Transactional boundaries and exception mapping #3621 Units of work + handlers → @transactional + exceptions
  11. Java conversion: JCL job flow -> Spring Batch jobs #3622 JCL job flow → Spring Batch
  12. Java conversion: PL/I programs through the same pipeline #3623 PL/I through the same pipeline
  13. Java conversion: behavioural equivalence harness + CardDemo vertical slice #3624 Behavioural equivalence harness + CardDemo vertical slice

Principles:

  • Deterministic scaffolding; AI only for bounded business-logic tickets.
  • Every generated artifact traces to the fact it came from. Where a fact is unresolved or draft-tier, the generated code says so (a TODO naming the gap), and never guesses.
  • Every config combination compiles.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicLarge-scale architectural milestone or multi-issue initiativelegacy-modernizationCOBOL refractor, dead-code extraction, and JCL forging

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions