The Red Hat build of Camel

This article proposes a simplified migration path for Red Hat build of Apache Camel that aims to drastically decrease your migration effort using a template-based solution pattern.

Migrating from Red Hat Fuse to Red Hat build of Apache Camel

Modernization is about more than just adopting the latest technologies; we should do it in a way that is both reliable and cost-effective to ensure that the investments we make today will preserve their impact and utility well into the future. Therefore, we choose vendor-neutral solutions that offer longevity, scalability, and flexibility. By utilizing integration best practices and patterns, developer teams can focus on high-value tasks.

Red Hat Fuse is the Red Hat solution for integrating applications based on Apache Camel version 2. Red Hat build of Apache Camel 4 is a versatile application development toolkit for enterprise integration that simplifies and standardizes how we connect diverse systems. We minimized the number of steps that it requires to write and run a Camel integration to iterate fast regardless of runtime or later CI/CD approaches. To deploy and manage integration services on OpenShift we offer Camel K operator which automates operational tasks and configures additional service traits to easily customize the behavior of the final integration without writing code. Depending on your specific needs, you can choose which approach or a combination best fits the envisioned solution.

Our aim is that we can, for example, modernize Camel 2 on Spring Boot 2 integrations to Camel 4 and Spring Boot 3. They can run as they did before the modernization. When we decide to move them closer to cloud services and make them scalable in the cloud, we can adopt Red Hat OpenShift. First, building images and deploying integration services manually. Later, automating builds and deployments via Red Hat OpenShift Pipelines/Argo CD. We can choose to make some of them serverless Spring Boot integrations. Finally, we can leverage the CI/CD pipelines and operate integrations via Camel K operator. Set up the infrastructure and define the integration manifest and configurations—all without changing integration code. This creates a cohesive, agile, and secure infrastructure that supports the organization’s current needs and future growth.

Making the migration easier

The migration toward the Red Hat build of Apache Camel can look challenging to people because this is a major turn with potential technical changes at multiple levels. If we look at the possibly hardest migration path (migrating from Apache Camel 2.x with Blueprint XML on Karaf OSGI over a virtual machine to a cloud-native Quarkus-based Camel 4.x application on Kubernetes), the migration would have to consider the following technical constraints:

  • Fabric8 to be changed to OpenShift
  • Karaf to be transformed to Quarkus base
  • OSGI features list to be replaced by maven dependencies
  • Camel BOM dependencies to be redirected to a set of versions
  • OpenJDK to be upgraded to v11 or v17, with an impact on the embedded JAXB libraries
  • Camel XML to be modified to new XML format and namespace

Our solution pattern proposes a simplified migration path that aims to drastically decrease the migration effort. It hides the technical details of the migration with ready-to-use templates in order to reduce the migration to:

  • Camel components whose name has changed but the behavior remains the same. For example, camel-http4 has simply become camel-http.
  • Deprecated components for which a workaround has to be implemented. For example, xmljson needs to be re-implemented with JAXB, Jackson, or other libraries.

Try out the solution pattern

This Fuse to Camel template-based migration pattern is available for you to try out. The solution pattern includes the instructions, code templates, samples, and a walk-through guide.

Solution patterns are fully coded and easily reproducible solutions to common use cases faced by organizations and can be used to inspire technical decision makers on how to achieve their goals with Red Hat's cloud-native application development and delivery platform. Do explore the other solutions patterns as well.