Spring Boot Support

Updated -

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

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-tomcat Starter used to enable Tomcat as the web container for Spring Boot. We recommend to consider Undertow.
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.

Comments