Add COBOL-to-Java/Spring Boot migration project (all 8 phases)#69
Open
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Open
Add COBOL-to-Java/Spring Boot migration project (all 8 phases)#69devin-ai-integration[bot] wants to merge 1 commit intomainfrom
devin-ai-integration[bot] wants to merge 1 commit intomainfrom
Conversation
- Phase 1: String utilities (trim, unstring, isNumeric, numval) - Phase 2: Data structures (sealed interfaces, search, COMP types) - Phase 3: Serialization (Jackson JSON/XML) - Phase 4: File processing (merge/sort with Spring Batch) - Phase 5: Database layer (JPA entities, repositories, services) - Phase 6: Subprogram architecture (Spring service layer) - Phase 7: UI layer (REST controllers replacing terminal UI) - Phase 8: Report generation (text and CSV reports) Includes 81 JUnit tests, per-phase README documentation, Flyway migrations, H2 test config, and sample test data. Database credentials use environment variables (DB_URL, DB_USERNAME, DB_PASSWORD). Co-Authored-By: Jerry Oliphant <jerry.oliphant@cognition.ai>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
java-migration/directory containing a complete Spring Boot 3.2.5 (Java 17) project that migrates all COBOL example programs into Java equivalents, organized across 8 phases:stringutilsdatastructuresserializationbatchdatabaseserviceswebreports81 JUnit tests pass (unit +
@DataJpaTest+@WebMvcTest). Tests use H2 in-memory DB. Per-phase README.md files document every COBOL-to-Java mapping decision.Review & Testing Checklist for Human
StringUtils): TheunstringMultipleDelimitersmethod andnumvaltrailing-sign handling are the most complex translations — compare outputs against running the actual COBOL programs to ensure parityV1__create_accounts_table.sqlandV2__insert_test_data.sqlmigrations, plus thesearchAccountsJPQL query (which usesLIKEwith an emptyescape ''clause), should be tested against the actualcobol_db_exampledatabaseMergeSortJobConfig(Spring Batch): This config class defines a batch Job with merge/sort steps, but has no integration test — only the simplerFileMergeServicepath is tested. Verify the@Beanwiring is correct if you intend to use the batch job pathCustomerControllerin-memory design: The controller instantiatesCustomerSearchServicedirectly and populates sample data in its constructor. This is demo/stub code — verify this matches your expectations for the migrationmvn spring-boot:runwith PostgreSQL configured and manually hit the REST endpoints (/api/accounts,/api/reports/customers) to verify end-to-end behaviorNotes
application.ymluse environment variable placeholders (${DB_URL},${DB_USERNAME},${DB_PASSWORD}) with localhost defaultsPAGE_LIMIT=66,LAST_DETAIL=42) but exact line-for-line output parity with COBOL Report Writer has not been validated@MockBeanusage inAccountControllerTestis functional but deprecated in newer Spring Boot — low priority to migrate@ControllerAdviceglobal exception handler is included — REST errors return Spring defaultsLink to Devin session: https://app.devin.ai/sessions/2addd7b899444abaa1fdd5537a6f7f27
Requested by: @jerryoliphant-cog