Skip to main content
The QuarkusConfiguration and SpringBootConfiguration classes provide configuration for Camel Quarkus and Camel Spring Boot product versions, platform BOMs, and build settings.

Quarkus configuration

The QuarkusConfiguration class manages Camel Quarkus and Quarkus platform configuration.

Property constants

Version properties

camel-quarkus.version
string
default:"3.26.0"
Camel Quarkus version to use
quarkus.version
string
default:"3.26.0"
Quarkus platform version
quarkus.native
boolean
default:"false"
Enable native compilation with GraalVM

Platform BOM properties

quarkus.platform.group-id
string
default:"io.quarkus"
Group ID for Quarkus platform BOM
quarkus.platform.artifact-id
string
default:"quarkus-bom"
Artifact ID for Quarkus platform BOM
quarkus.platform.version
string
Quarkus platform BOM version (overrides quarkus.version)
camel-quarkus.platform.group-id
string
default:"org.apache.camel.quarkus"
Group ID for Camel Quarkus platform BOM
camel-quarkus.platform.artifact-id
string
default:"camel-quarkus-bom"
Artifact ID for Camel Quarkus platform BOM
camel-quarkus.platform.version
string
Camel Quarkus platform BOM version

Examples repository

camel.quarkus.examples.repo
string
Git repository URL for Camel Quarkus examples
camel.quarkus.examples.branch
string
default:"main"
Git branch for Camel Quarkus examples

Public methods

public static String quarkusVersion()
public static String camelQuarkusVersion()
public static boolean isQuarkusNative()
Retrieve version and build configuration.
public static String quarkusPlatformGroupId()
public static String quarkusPlatformArtifactId()
public static String quarkusPlatformVersion()
Access Quarkus platform BOM coordinates.
public static String camelQuarkusPlatformGroupId()
public static String camelQuarkusPlatformArtifactId()
public static String camelQuarkusPlatformVersion()
Access Camel Quarkus platform BOM coordinates.
public static String getCamelQuarkusExamplesRepo()
public static String getCamelQuarkusExamplesBranch()
Retrieve examples repository information.
public static Map<String, String> fromSystemProperties()
Collects all system properties starting with “quarkus.” and returns them as a map, excluding internal properties defined in the ignoredQuarkusProperties set.
The fromSystemProperties() method allows you to pass custom Quarkus properties to Maven builds globally. Properties like quarkus.version, quarkus.native, and platform coordinates are filtered out.

Usage examples

Basic Quarkus version configuration

mvn test \
  -Dtest.product=CAMEL_QUARKUS \
  -Dcamel-quarkus.version=3.26.0 \
  -Dquarkus.version=3.26.0

Native build

mvn test \
  -Dtest.product=CAMEL_QUARKUS \
  -Dquarkus.native=true
Native compilation requires GraalVM to be installed and configured. The build process will take significantly longer than JVM mode.

Custom platform BOM

mvn test \
  -Dcamel-quarkus.platform.group-id=com.redhat.quarkus.platform \
  -Dcamel-quarkus.platform.artifact-id=quarkus-camel-bom \
  -Dcamel-quarkus.platform.version=3.2.0.redhat-00001

Pass custom Quarkus properties

mvn test \
  -Dquarkus.http.port=8081 \
  -Dquarkus.log.level=DEBUG \
  -Dquarkus.datasource.db-kind=postgresql
Any system property starting with “quarkus.” (except the reserved ones) will be automatically collected by fromSystemProperties() and passed to the Maven build.

Spring Boot configuration

The SpringBootConfiguration class manages Camel Spring Boot and Spring Boot platform configuration.

Property constants

Version properties

springboot.version
string
default:"3.5.5"
Spring Boot version to use
camel.springboot.version
string
default:"4.14.0"
Camel Spring Boot version

Platform BOM properties

springboot.platform.group.id
string
default:"org.springframework.boot"
Group ID for Spring Boot platform BOM
springboot.platform.artifact.id
string
default:"spring-boot-dependencies"
Artifact ID for Spring Boot platform BOM
camel.springboot.platform.group.id
string
default:"org.apache.camel.springboot"
Group ID for Camel Spring Boot platform BOM
camel.springboot.platform.artifact.id
string
default:"camel-spring-boot-dependencies"
Artifact ID for Camel Spring Boot platform BOM

Archetype properties

camel.springboot.archetype.group.id
string
default:"org.apache.camel.archetypes"
Group ID for Camel Spring Boot archetype
camel.springboot.archetype.artifact.id
string
default:"camel-archetype-spring-boot"
Artifact ID for Camel Spring Boot archetype
camel.springboot.archetype.version
string
Archetype version (defaults to camel.springboot.version)
camel.springboot.archetype.generated.version
string
Version to set in generated projects from archetype

Examples repository

camel.springboot.examples.repo
string
Git repository URL for Camel Spring Boot examples
camel.springboot.examples.branch
string
Git branch for examples (defaults to camel.springboot.version)

OpenShift Maven plugin

openshift-maven-plugin-group-id
string
default:"org.eclipse.jkube"
Group ID for OpenShift Maven plugin
openshift-maven-plugin-artifact-id
string
default:"openshift-maven-plugin"
Artifact ID for OpenShift Maven plugin
openshift-maven-plugin-version
string
default:"1.13.1"
OpenShift Maven plugin version (auto-fetches latest from GitHub releases)
maven-compiler-plugin-version
string
default:"3.8.1"
Maven compiler plugin version

OpenShift deployment

openshift-sb-base-image
string
Base container image for Spring Boot applications
openshift-sb.result-image.repo
string
Repository for the generated container image (required for JKubeWithExternalRepoStrategy)
openshift-sb.deployment.force
boolean
default:"true"
Force creation of Deployment instead of DeploymentConfig (sets jkube.build.switchToDeployment)

Public methods

public static String springBootVersion()
public static String camelSpringBootVersion()
Retrieve version configuration.
public static String springBootPlatformGroupId()
public static String springBootPlatformArtifactId()
public static String camelPlatformGroupId()
public static String camelPlatformArtifactId()
Access platform BOM coordinates.
public static String camelSpringBootArchetypeGroupId()
public static String camelSpringBootArchetypeArtifactId()
public static String camelSpringBootArchetypeVersion()
Retrieve archetype configuration.
public static String getCamelSpringbootExamplesRepo()
public static String camelSpringBootExamplesBranch()
Access examples repository information.
public static String openshiftMavenPluginGroupId()
public static String openshiftMavenPluginArtifactId()
public static String openshiftMavenPluginVersion()
public static String mavenCompilerPluginVersion()
Retrieve Maven plugin configuration.
public static String openshiftBaseImage()
public static String openshiftResultImageRepository()
public static boolean forceOpenshiftDeployment()
Access OpenShift deployment configuration.

Usage examples

Basic Spring Boot version configuration

mvn test \
  -Dtest.product=CAMEL_SPRINGBOOT \
  -Dcamel.springboot.version=4.14.0 \
  -Dspringboot.version=3.5.5

Custom platform BOM

mvn test \
  -Dspringboot.platform.group.id=com.example \
  -Dspringboot.platform.artifact.id=custom-spring-boot-bom \
  -Dcamel.springboot.platform.group.id=com.example \
  -Dcamel.springboot.platform.artifact.id=custom-camel-bom

OpenShift deployment configuration

mvn test \
  -Dtest.use.openshift=true \
  -Dopenshift-sb-base-image=registry.access.redhat.com/ubi9/openjdk-17:latest \
  -Dopenshift-sb.result-image.repo=quay.io/myorg/myapp \
  -Dopenshift-sb.deployment.force=true
When openshift-sb.deployment.force is true, JKube will create a Kubernetes Deployment instead of an OpenShift DeploymentConfig.

Using custom archetype

mvn archetype:generate \
  -DarchetypeGroupId=$(echo "org.apache.camel.archetypes") \
  -DarchetypeArtifactId=$(echo "camel-archetype-spring-boot") \
  -DarchetypeVersion=4.14.0

Complete configuration example

mvn test \
  -Dtest.product=CAMEL_QUARKUS \
  -Dtest.use.openshift=true \
  -Dcamel-quarkus.version=3.26.0 \
  -Dquarkus.version=3.26.0 \
  -Dquarkus.native=false \
  -Dcamel-quarkus.platform.group-id=org.apache.camel.quarkus \
  -Dcamel-quarkus.platform.artifact-id=camel-quarkus-bom \
  -Dquarkus.http.port=8080 \
  -Dquarkus.log.level=INFO

Access in Java code

import software.tnb.product.cq.configuration.QuarkusConfiguration;
import software.tnb.product.csb.configuration.SpringBootConfiguration;
import software.tnb.common.config.TestConfiguration;

public class ProductConfigTest {
    @Test
    public void testProductConfiguration() {
        if (TestConfiguration.product() == ProductType.CAMEL_QUARKUS) {
            String version = QuarkusConfiguration.camelQuarkusVersion();
            boolean isNative = QuarkusConfiguration.isQuarkusNative();
            
            System.out.println("Camel Quarkus version: " + version);
            System.out.println("Native build: " + isNative);
            
            // Get custom Quarkus properties
            Map<String, String> customProps = QuarkusConfiguration.fromSystemProperties();
            customProps.forEach((k, v) -> 
                System.out.println(k + " = " + v)
            );
        } else if (TestConfiguration.product() == ProductType.CAMEL_SPRINGBOOT) {
            String version = SpringBootConfiguration.camelSpringBootVersion();
            String baseImage = SpringBootConfiguration.openshiftBaseImage();
            
            System.out.println("Camel Spring Boot version: " + version);
            System.out.println("Base image: " + baseImage);
        }
    }
}

Build docs developers (and LLMs) love