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 to use
Enable native compilation with GraalVM
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 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
Camel Quarkus platform BOM version
Examples repository
camel.quarkus.examples.repo
Git repository URL for Camel Quarkus examples
camel.quarkus.examples.branch
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.
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
Spring Boot version to use
Camel Spring Boot version
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
Archetype version (defaults to camel.springboot.version)
camel.springboot.archetype.generated.version
Version to set in generated projects from archetype
Examples repository
camel.springboot.examples.repo
Git repository URL for Camel Spring Boot examples
camel.springboot.examples.branch
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
OpenShift Maven plugin version (auto-fetches latest from GitHub releases)
maven-compiler-plugin-version
Maven compiler plugin version
OpenShift deployment
Base container image for Spring Boot applications
openshift-sb.result-image.repo
Repository for the generated container image (required for JKubeWithExternalRepoStrategy)
openshift-sb.deployment.force
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
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
Camel Quarkus
Camel Spring Boot
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
mvn test \
-Dtest.product=CAMEL_SPRINGBOOT \
-Dtest.use.openshift=true \
-Dcamel.springboot.version=4.14.0 \
-Dspringboot.version=3.5.5 \
-Dopenshift-maven-plugin-version=1.13.1 \
-Dopenshift-sb-base-image=registry.access.redhat.com/ubi8/openjdk-11:latest \
-Dopenshift-sb.result-image.repo=quay.io/fuse-qe/test-app \
-Dopenshift-sb.deployment.force=true
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);
}
}
}