Spring Boot Support

Updated -

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.

This document outlines the components of Spring Boot that are supported with Red Hat Fuse and defines the scope and terms of that support.

Using Spring Boot with Fuse

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.