Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
23b4562
Next is 3.37.0
zbendhiba May 28, 2026
31a6ee7
data-extract: Upgrade to granite 4.1 and ollama 0.24.0
aldettinger Jun 1, 2026
c41adce
Bump the maven group across 38 directories with 3 updates
dependabot[bot] Jun 3, 2026
81ee09a
Bump the maven group across 7 directories with 2 updates
dependabot[bot] Jun 4, 2026
f11388c
Upgrade to Quarkus Platform 3.36.1
jamesnetherton Jun 5, 2026
18f1f8d
Use unique artifactId for quarkus-rest-json project
jamesnetherton Jun 5, 2026
505a8f3
Bump the maven group across 6 directories with 1 update
dependabot[bot] Jun 9, 2026
eb153ea
Add project root pom.xml to replace build scripts
jamesnetherton Jun 9, 2026
125cf58
Fix timer counter not being populated in Kafka example #8729
aldettinger Jun 8, 2026
1201e35
Add AMQ Broker and Keycloak integration example
JinyuChen97 Jun 9, 2026
7de4e43
chore: fix maven-resources-plugin version warning
jamesnetherton Jun 10, 2026
42fefc2
Bump org.l2x6.cq:cq-maven-plugin in the maven group across 1 directory
dependabot[bot] Jun 10, 2026
41c94cf
[camel-4.21] Fix #8691 CXF SOAP example for CAMEL-23526 header name c…
JiriOndrusek Jun 10, 2026
4e83866
ci: Cache Atlassian Maven artifacts & use zstd compression for maven-…
jamesnetherton Jun 10, 2026
cf478c1
Upgrade Maven Wrapper to 3.9.15
jamesnetherton Jun 11, 2026
2051009
Align AI assistants related exclusions to Camel Quarkus .gitignore
aldettinger Jun 15, 2026
193a12c
Upgrade to Quarkus Platform 3.37.0.CR1
jamesnetherton Jun 17, 2026
8056007
Set quarkus.platform.version to 3.37.0
jamesnetherton Jun 18, 2026
0073b1d
Build Camel Quarkus in parallel
jamesnetherton Jun 18, 2026
e10cd3a
Add Scalpel for incremental CI builds
jamesnetherton Jun 19, 2026
ae8741d
Bump actions/checkout from 6 to 7
dependabot[bot] Jun 19, 2026
20b0521
Ignore Claude local preferences
aldettinger Jun 23, 2026
384837a
Bump actions/cache from 5.0.5 to 6.0.0
dependabot[bot] Jun 24, 2026
e2e1a46
CAMEL-23823: add AGENTS.md to guide AI agents contributing examples
k-krawczyk Jun 25, 2026
27d992d
Migrate aws-s3 project from Localstack to Floci
jamesnetherton Jun 26, 2026
946dcbc
Bump actions/cache/save from 6.0.0 to 6.1.0
dependabot[bot] Jun 30, 2026
0da7928
Bump actions/cache/restore from 6.0.0 to 6.1.0
dependabot[bot] Jun 30, 2026
07f1dad
Update project versions for 3.38.0
jamesnetherton Jul 24, 2026
0856746
Bump the maven group across 1 directory with 3 updates
dependabot[bot] Jul 25, 2026
4ac91a1
Set camel-quarkus.platform.version to 3.39.0-SNAPSHOT
jamesnetherton Jul 28, 2026
46983cc
Fixes #8897: Add CyberArk Vault example
JiriOndrusek Jul 28, 2026
fdcd498
Update sftp-server container image to 0.8.0
jamesnetherton Jul 28, 2026
d1fe07a
Upgrade Quarkus platform to 3.38.0
jamesnetherton Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 0 additions & 53 deletions .github/generate-test-groups.groovy

This file was deleted.

96 changes: 96 additions & 0 deletions .github/generate-test-matrix.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Reads a Scalpel report and emits GitHub Actions matrix + modules outputs.
# Usage: generate-test-matrix.sh <scalpel-report.json>
# Output lines are in key=value format suitable for >> $GITHUB_OUTPUT.

set -euo pipefail

REPORT="${1:?Usage: $0 <scalpel-report.json>}"
MAX_GROUPS=10

# Unique top-level modules (first path component of each affected module path)
ALL=()
if [ -f "$REPORT" ]; then
while IFS= read -r line; do
ALL+=("$line")
done < <(jq -r '[.affectedModules[] | select(.path != "") | .path | split("/")[0]] | unique[]' "$REPORT")
fi

# Fall back to all reactor modules when Scalpel found nothing or wrote no report
# (no base branch configured, e.g. a plain push with no PR context)
if [ ${#ALL[@]} -eq 0 ]; then
while IFS= read -r line; do
ALL+=("$line")
done < <(grep '<module>' pom.xml | sed 's|.*<module>\(.*\)</module>.*|\1|' | sort)
fi

# Separate single-module and multi-module projects.
# Multi-module projects get a dedicated native test group (they run from their own
# root directory) and are expanded with sub-modules for the -pl modules list.
SINGLE=()
MULTI=()
for m in "${ALL[@]}"; do
if grep -q '<module>' "$m/pom.xml" 2>/dev/null; then
MULTI+=("$m")
else
SINGLE+=("$m")
fi
done

# Round-robin distribution of single-module projects into at most MAX_GROUPS groups
GROUP_TESTS=()
for i in "${!SINGLE[@]}"; do
gid=$((i % MAX_GROUPS))
if [[ -z "${GROUP_TESTS[$gid]+x}" ]]; then
GROUP_TESTS[$gid]="${SINGLE[$i]}"
else
GROUP_TESTS[$gid]="${GROUP_TESTS[$gid]},${SINGLE[$i]}"
fi
done

# Build matrix JSON include array
INCLUDE="["
SEP=""
for gid in $(echo "${!GROUP_TESTS[@]}" | tr ' ' '\n' | sort -n); do
INCLUDE+="${SEP}$(printf '{"name":"group-%02d","tests":"%s"}' $((gid + 1)) "${GROUP_TESTS[$gid]}")"
SEP=","
done
# Multi-module projects each get their own dedicated group at the end
NUM_GROUPS=${#GROUP_TESTS[@]}
for i in "${!MULTI[@]}"; do
INCLUDE+="${SEP}$(printf '{"name":"group-%02d","tests":"%s"}' $((NUM_GROUPS + i + 1)) "${MULTI[$i]}")"
SEP=","
done
INCLUDE+="]"

# Build expanded module list for -pl: multi-module projects include their sub-modules
# so that Maven builds the full project tree rather than just the parent POM.
EXPANDED=()
for m in "${ALL[@]}"; do
EXPANDED+=("$m")
if grep -q '<module>' "$m/pom.xml" 2>/dev/null; then
while IFS= read -r submod; do
[ -n "$submod" ] && EXPANDED+=("$m/$submod")
done < <(grep '<module>' "$m/pom.xml" | sed 's|.*<module>\(.*\)</module>.*|\1|')
fi
done

echo "matrix={\"include\":${INCLUDE}}"
echo "modules=$(IFS=,; echo "${EXPANDED[*]}")"
77 changes: 54 additions & 23 deletions .github/workflows/ci-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ on:
- "[0-9]+.[0-9]+.x"
paths-ignore:
- '**.adoc'
- '**.md'
- 'Jenkinsfile'
- 'KEYS'
- 'LICENSE.txt'
Expand All @@ -36,6 +37,7 @@ on:
- "[0-9]+.[0-9]+.x"
paths-ignore:
- '**.adoc'
- '**.md'
- 'Jenkinsfile'
- 'KEYS'
- 'LICENSE.txt'
Expand All @@ -57,52 +59,79 @@ jobs:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-itest-matrix.outputs.matrix }}
modules: ${{ steps.set-itest-matrix.outputs.modules }}
steps:
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Checkout Camel Quarkus
id: build-camel-quarkus
if: github.ref == 'refs/heads/camel-quarkus-main' || github.base_ref == 'camel-quarkus-main'
run: |
git clone --depth 1 --branch main https://github.com/apache/camel-quarkus.git ${{ runner.temp }}/camel-quarkus
cd ${{ runner.temp }}/camel-quarkus
echo "Current Camel Quarkus commit:" $(git rev-parse HEAD)
JIRA_VERSION=$(./mvnw help:evaluate -Dexpression=jira-rest-client.version -q -DforceStdout -N)
echo "atlassian-version=${JIRA_VERSION}" >> $GITHUB_OUTPUT
- name: Restore Atlassian Maven Cache
if: github.ref == 'refs/heads/camel-quarkus-main' || github.base_ref == 'camel-quarkus-main'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
~/.m2/repository/com/atlassian
~/.m2/repository/io/atlassian
key: atlassian-maven-${{ steps.build-camel-quarkus.outputs.atlassian-version }}
- name: Build Camel Quarkus
if: github.ref == 'refs/heads/camel-quarkus-main' || github.base_ref == 'camel-quarkus-main'
run: |
git clone --depth 1 --branch main https://github.com/apache/camel-quarkus.git ${{ runner.temp }}/camel-quarkus \
&& cd ${{ runner.temp }}/camel-quarkus \
&& echo "Current Camel Quarkus commit:" $(git rev-parse HEAD) \
&& ./mvnw ${MAVEN_ARGS} clean install -Dquickly
cd ${{ runner.temp }}/camel-quarkus
./mvnw ${MAVEN_ARGS} clean install -Dquickly -T1C
- name: Save Atlassian Maven Cache
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
if: github.ref == 'refs/heads/camel-quarkus-main' || github.base_ref == 'camel-quarkus-main'
with:
path: |
~/.m2/repository/com/atlassian
~/.m2/repository/io/atlassian
key: atlassian-maven-${{ steps.build-camel-quarkus.outputs.atlassian-version }}
- name: mvn cq:examples-check-platform
run: mvn org.l2x6.cq:cq-maven-plugin:2.10.0:examples-check-platform
- name: mvn ${MAVEN_ARGS} license:check formatter:validate impsort:check
run: |
./mvnw-for-each.sh ${MAVEN_ARGS} \
./mvnw ${MAVEN_ARGS} \
license:check \
net.revelc.code.formatter:formatter-maven-plugin:validate \
net.revelc.code:impsort-maven-plugin:check
- name: Fetch base branch for Scalpel
if: github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci/disable-incremental')
run: git fetch --unshallow origin ${{ github.base_ref }}
- name: Build Camel Quarkus Examples
run: |
./mvnw-for-each.sh ${MAVEN_ARGS} clean install -DskipTests -Dquarkus.build.skip
./mvnw ${MAVEN_ARGS} clean install -DskipTests -Dquarkus.build.skip \
-Dscalpel.enabled=true \
-Dscalpel.mode=report \
-Dscalpel.reportFile=${{ runner.temp }}/scalpel-report.json
- name: Fail if there are uncommitted changes
shell: bash
run: |
[[ -z $(git status --porcelain) ]] || { echo 'There are uncommitted changes'; git status; exit 1; }
- name: Setup Integration Test Matrix
id: set-itest-matrix
run: bash .github/generate-test-matrix.sh '${{ runner.temp }}/scalpel-report.json' >> $GITHUB_OUTPUT
- name: Tar Maven Repo
shell: bash
run: |
tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
tar -I 'zstd -T0' -cf ${{ runner.temp }}/maven-repo.tar.zst -C ~ .m2/repository
- name: Persist Maven Repo
uses: actions/upload-artifact@v7
with:
name: maven-repo
path: ${{ runner.temp }}/maven-repo.tgz
path: ${{ runner.temp }}/maven-repo.tar.zst
retention-days: 1
- name: Setup Integration Test Matrix
id: set-itest-matrix
run: |
sudo apt install groovy -y --no-install-recommends
TEST_GROUPS=$(groovy .github/generate-test-groups.groovy)
echo "matrix=${TEST_GROUPS}" >> $GITHUB_OUTPUT

integration-tests:
name: Integration Tests - ${{matrix.name}}
Expand All @@ -113,7 +142,7 @@ jobs:
matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
Expand All @@ -127,7 +156,7 @@ jobs:
- name: Extract Maven Repo
shell: bash
run: |
tar -xzf ../maven-repo.tgz -C ~
tar -I 'zstd -d' -xf ../maven-repo.tar.zst -C ~
- name: Integration Tests
env:
TEST_MODULES: ${{matrix.tests}}
Expand Down Expand Up @@ -173,7 +202,7 @@ jobs:
jdk: ['21']
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up JDK {{ matrix.jdk }}
uses: actions/setup-java@v5
with:
Expand All @@ -187,11 +216,12 @@ jobs:
- name: Extract Maven Repo
shell: bash
run: |
tar -xzf ../maven-repo.tgz -C ~
tar -I 'zstd -d' -xf ../maven-repo.tar.zst -C ~
- name: Integration Tests
shell: bash
run: |
./mvnw-for-each.sh ${MAVEN_ARGS} clean test
./mvnw ${MAVEN_ARGS} clean test \
-pl ${{ needs.initial-mvn-install.outputs.modules }}
- name: Fail if there are uncommitted changes
shell: bash
run: |
Expand All @@ -207,7 +237,7 @@ jobs:
os: ['windows-latest']
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
Expand All @@ -221,11 +251,12 @@ jobs:
- name: Extract Maven Repo
shell: bash
run: |
tar -xzf ../maven-repo.tgz -C ~
tar -I 'zstd -d' -xf ../maven-repo.tar.zst -C ~
- name: Integration Tests
shell: bash
run: |
./mvnw-for-each.sh ${MAVEN_ARGS} -Dskip-testcontainers-tests clean test
./mvnw ${MAVEN_ARGS} -Dskip-testcontainers-tests clean test \
-pl ${{ needs.initial-mvn-install.outputs.modules }}
- name: Fail if there are uncommitted changes
shell: bash
run: |
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,9 @@ flight.*
train.*
app.*

# Claude
.claude
CLAUDE.local.md

# Bob
.bob
8 changes: 8 additions & 0 deletions .mvn/extensions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
<extension>
<groupId>eu.maveniverse.maven.scalpel</groupId>
<artifactId>extension</artifactId>
<version>0.3.4</version>
</extension>
</extensions>
1 change: 1 addition & 0 deletions .mvn/maven.config
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-Dscalpel.enabled=false
2 changes: 1 addition & 1 deletion .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
wrapperVersion=3.3.4
distributionType=bin
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.15/apache-maven-3.9.15-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar
Loading
Loading