{"id":23483825,"url":"https://github.com/codesmell/camelmigrationjavaconfig","last_synced_at":"2026-05-09T00:07:13.571Z","repository":{"id":43799675,"uuid":"511657064","full_name":"CodeSmell/camelMigrationJavaConfig","owner":"CodeSmell","description":"Migrate a small Camel 2.x application to Camel 3.x (Camel Java-Config)","archived":false,"fork":false,"pushed_at":"2022-08-09T13:01:11.000Z","size":219,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-16T09:20:24.578Z","etag":null,"topics":["apache-camel","java","migration","spring","spring-boot","springboot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeSmell.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeTheJDK.png","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-07T19:53:31.000Z","updated_at":"2024-11-12T08:52:08.000Z","dependencies_parsed_at":"2022-08-12T10:50:20.031Z","dependency_job_id":null,"html_url":"https://github.com/CodeSmell/camelMigrationJavaConfig","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeSmell%2FcamelMigrationJavaConfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeSmell%2FcamelMigrationJavaConfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeSmell%2FcamelMigrationJavaConfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeSmell%2FcamelMigrationJavaConfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeSmell","download_url":"https://codeload.github.com/CodeSmell/camelMigrationJavaConfig/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248799979,"owners_count":21163404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-camel","java","migration","spring","spring-boot","springboot"],"created_at":"2024-12-24T21:16:19.038Z","updated_at":"2026-05-09T00:07:08.538Z","avatar_url":"https://github.com/CodeSmell.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Camel Migration\nExploring how to migrate a small Camel 2.x application to Camel 3.x\n\n**For details on each phase see the GitHub wiki**\n\nCamel is a very flexible framework that is designed around [Enterprise Integration Patterns (EIP)](https://www.enterpriseintegrationpatterns.com/).\nThe transition from the 2.x to 3.x represents a major and non-backward compatible change. The 3.0.0 release came out in November 2019.\nThis repo will explore how to use the various Camel migrations guides to migrate from Camel 2.x to Camel 3.x using a small application.\n\nThe application will be built using the Spring Java-Config capability to configure the `CamelContext`. \nThis expects a configuration class to extend the `CamelConfiguration` which will allow configuration of Camel context.\n\nThe starting point:\n- a small Camel 2.x application\n- using Spring 5.x\n- using JDK 8\n\nThe goal:\n- a small Camel 3.x application\n- using Spring 5.x\n- using JDK 17\n\nThis application will consume EDI X12 messages from a directory and write them to a directory as JSON\n(using [the Gozer parser](https://github.com/walmartlabs/gozer) and object model).\n\n## Camel LTS releases\nWith 3.x Camel [moved to an LTS model like the JDK](https://camel.apache.org/blog/2020/03/LTS-Release-Schedule/).\nThe LTS versions will be supported for 1 year, be more stable and will not get new features.\nThe non-LTS versions will not have patch releases and will feature more innovations.\nThe LTS versions:\n- 3.4.0 (EOL in June 2021)\n- 3.7.0 (EOL in Dec 2021)\n- 3.11.0 (EOL in June 2022)\n- 3.14.0 (EOL in Dec 2022)\n- 3.18.0 (EOL in July 2023)\n\nSome major changes start with the non-LTS release of Camel 3.15.0\n- [removes support for JDK 8](https://camel.apache.org/releases/release-3.15.0/)\n- [removes support for spring-java-config](https://issues.apache.org/jira/browse/CAMEL-17354)\n\nIn addition, Camel 3.17 (non-LTS) will support JDK 17 as well as JDK 11\n\n# The Migration Plan\n- (**Starting point**) A Camel 2.24.x application\n- (**Phase 1**) Migrate the Camel application from 2.24.x to Camel 3.14.x.\n  - this moves the application to the current LTS (prior to major changes in 3.15)\n  - it holds off on dealing with the JDK and Java-Config changes\n- (**Phase 2**) Migrate the application from 3.14.0 to Camel 3.18.0\n  - move to the latest LTS\n  - move to JDK 17\n  - evaluate options with Java-Config removal\n- (**Phase 3**) Migrate the testing in the application from jUnit 4 to jUnit 5\n  - remove need for deprecated Camel testing\n- (**Phase 4**) Migrate the application to use Spring Boot\n  - replace Camel Main w/ Spring Boot\n\n**For details on each phase see the GitHub wiki**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodesmell%2Fcamelmigrationjavaconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodesmell%2Fcamelmigrationjavaconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodesmell%2Fcamelmigrationjavaconfig/lists"}