Spring Boot Support
This document outlines the components of Spring Boot that are supported with Red Hat Fuse and Red Hat build of Apache Camel for Spring Boot from Red Hat Application Foundations and defines the scope and terms of that support.
- Using Red Hat build of Apache Camel for Spring Boot from Red Hat Application Foundations
- Using Spring Boot with Red Hat Fuse
Using Red Hat build of Apache Camel for Spring Boot from Red Hat Application Foundations
Red Hat build of Apache Camel for Spring Boot (CSB) integrates with Spring Boot to provide a lightweight runtime for Camel-based applications leveraging a flat class path deployment paradigm. Spring Boot provides for bootstrap of the CSB runtime environment, auto-configuration of CSB components, auto-wiring of beans, and framework support for Camel components.
In order to run CSB on Spring Boot, CSB applications import the necessary Spring Boot starters into their pom.xml
file along with the Spring Boot Maven plugin to package their application. CSB tests and certifies with a specific set of Spring Boot dependencies - these dependencies along with required version information are provided in the CSB Bill of Materials (BOM) com.redhat.camel.springboot.platform:camel-spring-boot-bom
. CSB applications leveraging Spring Boot must align to the CSB BOM.
Supported Spring Boot Components
The following starters are supported by Camel for Spring Boot:
Name | Description |
---|---|
spring-boot-starter |
Core starter for Spring Boot framework features including including auto-configuration. |
spring-boot-starter-actuator |
Management and monitoring hooks for the Spring Boot runtime. |
spring-boot-starter-jdbc |
Used by JDBC-based Camel components (e.g. camel-sql). |
spring-boot-starter-logging |
Core logback framework integration with Spring Boot logging. |
spring-boot-starter-security |
Integration with Spring Security. |
spring-boot-starter-undertow |
Starter used to enable Undertow as the web container for Spring Boot. Undertow is the recommended container for Camel on Spring Boot applications. |
spring-boot-starter-web |
Used internally by Camel based applications for web container integration. General-purpose use of Web MVC with Camel is not supported. Also see note below. |
spring-boot-starter-data-jpa |
Used with camel-jpa. |
spring-boot-starter-test |
Required dependency for some quickstarts. |
Note: Red Hat recommends and supports spring-boot-starter-undertow
instead of spring-boot-starter-tomcat
. Therefore it is necessary to exclude spring-boot-starter-tomcat
when using spring-boot-starter-web
and instead add the spring-boot-starter-undertow
dependency as per the following configuration:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
Note: For integrating with the Narayana transaction manager, you should use the supported me.snowdrop:narayana-spring-boot-starter
starter (from the Snowdrop project) , included in the camel-spring-boot-dependencies
BOM, instead of the Spring Boot spring-boot-starter-jta-narayana
starter.
In addition to Spring Boot starters, the following Spring Boot dependencies are also supported:
Name | Description |
---|---|
spring-boot-autoconfigure |
|
spring-boot-autoconfigure-processor |
|
spring-boot-configuration-processor |
Generates configuration metadata based on annotations. |
spring-boot-maven-plugin |
Used to package all code and configuration into a single, flat class path jar file. |
Spring Boot Support Policy
Red Hat build of Apache Camel for Spring Boot is tested and certified to work with the starters and dependencies referenced above. Red Hat supports their use with CSB applications. All fixes related to Spring Boot occur in the upstream Spring Boot community. Red Hat provides commercially reasonable support for upstream Spring Boot dependencies, however, we may not be able to provide or influence timely patches. See more at Tested and Verified Spring Boot 3 for Red Hat platforms
Starters available in the Spring Boot community not listed here can be used by customers, but Red Hat does not test or certify their use with CSB applications. Red Hat will not provide direct support for components other than those listed in the table.
Using Spring Boot with Red Hat Fuse
Red Hat Fuse integrates with Spring Boot to provide a lightweight runtime for Camel-based applications leveraging a flat class path deployment paradigm. Spring Boot provides for bootstrap of the Fuse runtime environment, auto-configuration of Fuse components, auto-wiring of beans, and framework support for Camel components.
In order to run Fuse on Spring Boot, Fuse applications import the necessary Spring Boot starters into their pom.xml
file along with the Spring Boot Maven plugin to package their application. Fuse tests and certifies with a specific set of Spring Boot dependencies - these dependencies along with required version information are provided in the Fuse Bill of Materials (BOM). Fuse applications leveraging Spring Boot must align to the Fuse BOM.
Supported Spring Boot Components
The following starters are supported for Fuse on Spring Boot:
Name | Description |
---|---|
spring-boot-starter |
Core starter for Spring Boot framework features including including auto-configuration. |
spring-boot-starter-actuator |
Management and monitoring hooks for the Spring Boot runtime. |
spring-boot-starter-jdbc |
Used by JDBC-based Fuse components (e.g. camel-sql) |
spring-boot-starter-logging |
Core logback framework integration with Spring Boot logging. |
spring-boot-starter-security |
Integration with Spring Security. |
spring-boot-starter-tomcat |
Starter used to enable Tomcat as the web container for Spring Boot. |
spring-boot-starter-undertow |
Starter used to enable Undertow as the web container for Spring Boot. Undertow is the recommended container for Fuse applications. |
spring-boot-starter-web |
Used internally by Fuse-based applications for web container integration. General-purpose use of Web MVC with Fuse is not supported. |
spring-boot-starter-data-jpa |
Used with camel-jpa . |
spring-boot-starter-test |
Required dependency for some quickstarts. |
Note: For integrating with the Narayana transaction manager, you should use the supported me.snowdrop:narayana-spring-boot-starter
starter (from the Snowdrop project) instead of the Spring Boot spring-boot-starter-jta-narayana
starter.
In addition to Spring Boot starters, the following Spring Boot dependencies are also supported:
Name | Description |
---|---|
spring-boot-configuration-processor |
Generates configuration metadata based on annotations. |
spring-boot-maven-plugin |
Used to package all code and configuration into a single, flat class path jar file. |
Spring Boot Support Policy
Fuse is tested and certified to work with the starters and dependencies referenced above. Red Hat supports their use with Camel-based applications in Fuse. All fixes related to Spring Boot occur in the upstream Spring Boot community. Red Hat provides commercially reasonable support for upstream Spring Boot dependencies, however, we may not be able to provide or influence timely patches.
Starters available in the Spring Boot community not listed here can be used by customers, but Red Hat does not test or certify their use with Fuse applications. Red Hat will not provide direct support for components other than those listed in the table.