Skip to content

CAMEL-23703: camel-launcher - cross-compile native camel.exe for x64 and arm64 via llvm-mingw#24754

Merged
davsclaus merged 5 commits into
apache:mainfrom
ammachado:CAMEL-23703-native-exe-crosscompile
Jul 19, 2026
Merged

CAMEL-23703: camel-launcher - cross-compile native camel.exe for x64 and arm64 via llvm-mingw#24754
davsclaus merged 5 commits into
apache:mainfrom
ammachado:CAMEL-23703-native-exe-crosscompile

Conversation

@ammachado

@ammachado ammachado commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Claude Code on behalf of ammachado

Description

This PR splits the native Windows executable cross-compile work out of the larger CAMEL-23703 package distribution branch.

It replaces the Windows/MSVC-only camel.exe build with a host-independent clang/llvm-mingw flow and publishes separate launcher executables for Windows x64 and Windows ARM64:

  • bin/camel-x64.exe
  • bin/camel-arm64.exe

The release profile now activates camel.exe.build, and the launcher module copies both classified camel-exe artifacts into the distribution when that property is enabled. The native executable workflow is renamed from the old Windows-only workflow to camel-launcher-native-exe.yml.

The native bootstrap uses a wide-character wmain entry point to preserve Unicode command lines, so both llvm-mingw compile invocations pass -municode.

Toolchain provisioning

The llvm-mingw download/verify logic (pinned version + SHA256) lives in a single shared script, .github/actions/setup-llvm-mingw/install-llvm-mingw.sh, used by both the GitHub Actions composite action and Jenkinsfile.deploy. The CI snapshot-deploy pipeline reuses an agent-provided toolchain when the cross-compilers are already on PATH, and otherwise downloads the pinned, SHA256-verified copy into a persistent cache. This removes the need to pre-provision llvm-mingw on the ASF Jenkins agents. A local -Prelease build still requires the toolchain on PATH (documented in the release guide).

The native camel.exe build is scoped to the branches that actually carry the launcher: the Setup llvm-mingw stage and -Dcamel.exe.build=true only run on main and the upcoming camel-4.22.x LTS. The older LTS branches (camel-4.18.x, camel-4.14.x) continue to deploy their snapshots without the native build.

Target

  • I checked that the commit is targeting the correct branch (Camel 4 uses the main branch)

Tracking

  • If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

  • I checked that each commit in the pull request has a meaningful subject line and body.
  • I have run mvn clean install -DskipTests locally from root folder and I have committed all auto-generated changes.

Formatter verification was run locally with mvn formatter:format impsort:sort and passed. Full build/test verification is intentionally deferred to CI/PR for this split.

AI-assisted contributions

  • If this PR includes AI-generated code, commits have proper co-authorship attribution (e.g., Co-authored-by trailers) and the PR description identifies the AI tool used.

@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@ammachado
ammachado force-pushed the CAMEL-23703-native-exe-crosscompile branch 3 times, most recently from fb64721 to 85b8ceb Compare July 15, 2026 22:41
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • docs
  • dsl/camel-jbang/camel-launcher
  • tooling/camel-exe
  • tooling/maven/camel-repackager-maven-plugin

🔬 Scalpel shadow comparison — Scalpel: 649 tested, 27 compile-only — current: 3 all tested

Maveniverse Scalpel detected 676 affected modules (current approach: 3).

⚠️ Modules only in Scalpel (673)
  • apache-camel
  • archetypes
  • bom-generator
  • bom-generator-maven-plugin
  • bundles-pom
  • camel
  • camel-a2a
  • camel-activemq
  • camel-activemq6
  • camel-ai-parent
  • camel-ai-tool
  • camel-allcomponents
  • camel-amqp
  • camel-api
  • camel-api-component-maven-plugin
  • camel-arangodb
  • camel-archetype-api-component
  • camel-archetype-component
  • camel-archetype-dataformat
  • camel-archetype-java
  • camel-archetype-main
  • camel-archetype-spring
  • camel-as2
  • camel-as2-api
  • camel-as2-parent
  • camel-asn1
  • camel-asterisk
  • camel-atmosphere-websocket
  • camel-atom
  • camel-attachments
  • camel-avro
  • camel-avro-rpc
  • camel-avro-rpc-jetty
  • camel-avro-rpc-parent
  • camel-avro-rpc-spi
  • camel-aws-bedrock
  • camel-aws-cloudtrail
  • camel-aws-common
  • camel-aws-config
  • camel-aws-parameter-store
  • camel-aws-parent
  • camel-aws-secrets-manager
  • camel-aws-security-hub
  • camel-aws2-athena
  • camel-aws2-comprehend
  • camel-aws2-cw
  • camel-aws2-ddb
  • camel-aws2-ec2
  • camel-aws2-ecs
  • camel-aws2-eks
  • camel-aws2-eventbridge
  • camel-aws2-iam
  • camel-aws2-kinesis
  • camel-aws2-kms
  • camel-aws2-lambda
  • camel-aws2-mq
  • camel-aws2-msk
  • camel-aws2-polly
  • camel-aws2-redshift
  • camel-aws2-rekognition
  • camel-aws2-s3
  • camel-aws2-s3-vectors
  • camel-aws2-ses
  • camel-aws2-sns
  • camel-aws2-sqs
  • camel-aws2-step-functions
  • camel-aws2-sts
  • camel-aws2-textract
  • camel-aws2-timestream
  • camel-aws2-transcribe
  • camel-aws2-translate
  • camel-azure-common
  • camel-azure-cosmosdb
  • camel-azure-eventgrid
  • camel-azure-eventhubs
  • camel-azure-files
  • camel-azure-functions
  • camel-azure-key-vault
  • camel-azure-parent
  • camel-azure-schema-registry
  • camel-azure-servicebus
  • camel-azure-storage-blob
  • camel-azure-storage-datalake
  • camel-azure-storage-queue
  • camel-barcode
  • camel-base
  • camel-base-engine
  • camel-base64
  • camel-bean
  • camel-bean-validator
  • camel-beanio
  • camel-bindy
  • camel-bom
  • camel-bonita
  • camel-box
  • camel-box-api
  • camel-box-parent
  • camel-braintree
  • camel-browse
  • camel-buildtools
  • camel-caffeine
  • camel-camunda
  • camel-cassandraql
  • camel-catalog
  • camel-catalog-common
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-cbor
  • camel-chatscript
  • camel-chunk
  • camel-cli-connector
  • camel-cli-debug
  • camel-clickup
  • camel-cloudevents
  • camel-cluster
  • camel-cm-sms
  • camel-coap
  • camel-cometd
  • camel-component-maven-plugin
  • camel-componentdsl
  • camel-console
  • camel-consul
  • camel-controlbus
  • camel-core
  • camel-core-all
  • camel-core-catalog
  • camel-core-engine
  • camel-core-languages
  • camel-core-model
  • camel-core-processor
  • camel-core-reifier
  • camel-core-xml
  • camel-couchbase
  • camel-couchdb
  • camel-cron
  • camel-crypto
  • camel-crypto-pgp
  • camel-csimple-joor
  • camel-csimple-maven-plugin
  • camel-csv
  • camel-cxf-common
  • camel-cxf-parent
  • camel-cxf-rest
  • camel-cxf-soap
  • camel-cxf-spring-common
  • camel-cxf-spring-rest
  • camel-cxf-spring-soap
  • camel-cxf-spring-transport
  • camel-cxf-transport
  • camel-cyberark-vault
  • camel-dapr
  • camel-dataformat
  • camel-dataset
  • camel-datasonnet
  • camel-debezium-common
  • camel-debezium-common-parent
  • camel-debezium-db2
  • camel-debezium-maven-plugin
  • camel-debezium-mongodb
  • camel-debezium-mysql
  • camel-debezium-oracle
  • camel-debezium-parent
  • camel-debezium-postgres
  • camel-debezium-sqlserver
  • camel-debug
  • camel-dependencies
  • camel-dfdl
  • camel-dhis2
  • camel-dhis2-api
  • camel-dhis2-parent
  • camel-diagram
  • camel-digitalocean
  • camel-direct
  • camel-disruptor
  • camel-djl
  • camel-dns
  • camel-docker
  • camel-docling
  • camel-drill
  • camel-dropbox
  • camel-dsl-modeline
  • camel-dsl-support
  • camel-dynamic-router
  • camel-ehcache
  • camel-eip-documentation-enricher-maven-plugin
  • camel-elasticsearch
  • camel-elasticsearch-rest-client
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-enforcer-rules
  • camel-etc
  • camel-event
  • camel-exec
  • camel-fastjson
  • camel-fhir
  • camel-fhir-api
  • camel-fhir-parent
  • camel-file
  • camel-file-watch
  • camel-flatpack
  • camel-flink
  • camel-flowable
  • camel-fop
  • camel-fory
  • camel-freemarker
  • camel-ftp
  • camel-ftp-common
  • camel-geocoder
  • camel-git
  • camel-github2
  • camel-google-bigquery
  • camel-google-calendar
  • camel-google-common
  • camel-google-drive
  • camel-google-firestore
  • camel-google-functions
  • camel-google-mail
  • camel-google-parent
  • camel-google-pubsub
  • camel-google-secret-manager
  • camel-google-sheets
  • camel-google-speech-to-text
  • camel-google-storage
  • camel-google-text-to-speech
  • camel-google-vertexai
  • camel-google-vision
  • camel-graphql
  • camel-grok
  • camel-groovy
  • camel-grpc
  • camel-gson
  • camel-hashicorp-vault
  • camel-hazelcast
  • camel-headersmap
  • camel-health
  • camel-hl7
  • camel-http
  • camel-http-base
  • camel-http-common
  • camel-huawei-parent
  • camel-huaweicloud-common
  • camel-huaweicloud-dms
  • camel-huaweicloud-frs
  • camel-huaweicloud-functiongraph
  • camel-huaweicloud-iam
  • camel-huaweicloud-imagerecognition
  • camel-huaweicloud-obs
  • camel-huaweicloud-smn
  • camel-huggingface
  • camel-ibm-cos
  • camel-ibm-parent
  • camel-ibm-secrets-manager
  • camel-ibm-watson-discovery
  • camel-ibm-watson-language
  • camel-ibm-watson-speech-to-text
  • camel-ibm-watson-text-to-speech
  • camel-ibm-watsonx-ai
  • camel-ibm-watsonx-data
  • camel-ical
  • camel-iec60870
  • camel-iggy
  • camel-ignite
  • camel-infinispan
  • camel-infinispan-common
  • camel-infinispan-embedded
  • camel-infinispan-parent
  • camel-influxdb
  • camel-influxdb2
  • camel-irc
  • camel-ironmq
  • camel-iso8583
  • camel-itest
  • camel-jackson
  • camel-jackson-avro
  • camel-jackson-protobuf
  • camel-jackson3
  • camel-jackson3-avro
  • camel-jackson3-protobuf
  • camel-jackson3xml
  • camel-jacksonxml
  • camel-jandex
  • camel-jasypt
  • camel-java-io
  • camel-java-joor-dsl
  • camel-javascript
  • camel-jaxb
  • camel-jbang-console
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-mcp
  • camel-jbang-parent
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-test
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-jcache
  • camel-jcr
  • camel-jdbc
  • camel-jetty
  • camel-jetty-common
  • camel-jfr
  • camel-jgroups
  • camel-jgroups-raft
  • camel-jira
  • camel-jms
  • camel-jmx
  • camel-jolt
  • camel-jooq
  • camel-joor
  • camel-jpa
  • camel-jq
  • camel-jsch
  • camel-jslt
  • camel-json-patch
  • camel-json-validator
  • camel-jsonapi
  • camel-jsonata
  • camel-jsonb
  • camel-jsonpath
  • camel-jsoup
  • camel-jt400
  • camel-jta
  • camel-jte
  • camel-kafka
  • camel-kamelet
  • camel-kamelet-main
  • camel-kamelet-main-support
  • camel-keycloak
  • camel-knative
  • camel-knative-api
  • camel-knative-http
  • camel-knative-parent
  • camel-kserve
  • camel-kubernetes
  • camel-kudu
  • camel-langchain4j-agent
  • camel-langchain4j-agent-api
  • camel-langchain4j-chat
  • camel-langchain4j-core
  • camel-langchain4j-embeddings
  • camel-langchain4j-embeddingstore
  • camel-langchain4j-embeddingstore-api
  • camel-langchain4j-tokenizer
  • camel-langchain4j-tools
  • camel-langchain4j-web-search
  • camel-language
  • camel-launcher
  • camel-ldap
  • camel-ldif
  • camel-leveldb
  • camel-log
  • camel-lra
  • camel-lucene
  • camel-lumberjack
  • camel-lzf
  • camel-mail
  • camel-mail-microsoft-oauth
  • camel-main
  • camel-management
  • camel-management-api
  • camel-mapstruct
  • camel-master
  • camel-maven-plugin
  • camel-mdc
  • camel-metrics
  • camel-micrometer
  • camel-micrometer-observability
  • camel-micrometer-prometheus
  • camel-microprofile-config
  • camel-microprofile-fault-tolerance
  • camel-microprofile-health
  • camel-microprofile-parent
  • camel-milo
  • camel-milvus
  • camel-mina
  • camel-mina-sftp
  • camel-minio
  • camel-mllp
  • camel-mock
  • camel-mongodb
  • camel-mongodb-gridfs
  • camel-mustache
  • camel-mvel
  • camel-mybatis
  • camel-nats
  • camel-neo4j
  • camel-netty
  • camel-netty-http
  • camel-oaipmh
  • camel-oauth
  • camel-observability-services
  • camel-observation
  • camel-ocsf
  • camel-ognl
  • camel-olingo2
  • camel-olingo2-api
  • camel-olingo2-parent
  • camel-olingo4
  • camel-olingo4-api
  • camel-olingo4-parent
  • camel-once
  • camel-openai
  • camel-openapi-java
  • camel-openapi-rest-dsl-generator
  • camel-openapi-validator
  • camel-opensearch
  • camel-openstack
  • camel-opentelemetry
  • camel-opentelemetry-metrics
  • camel-opentelemetry2
  • camel-optaplanner
  • camel-package-maven-plugin
  • camel-paho
  • camel-paho-mqtt5
  • camel-parent
  • camel-parquet-avro
  • camel-pdf
  • camel-pg-replication-slot
  • camel-pgevent
  • camel-pgvector
  • camel-pinecone
  • camel-platform-http
  • camel-platform-http-jolokia
  • camel-platform-http-main
  • camel-platform-http-vertx
  • camel-plc4x
  • camel-pqc
  • camel-printer
  • camel-protobuf
  • camel-pubnub
  • camel-pulsar
  • camel-python
  • camel-qdrant
  • camel-quartz
  • camel-quickfix
  • camel-reactive-executor-tomcat
  • camel-reactive-executor-vertx
  • camel-reactive-streams
  • camel-reactor
  • camel-redis
  • camel-ref
  • camel-report-maven-plugin
  • camel-resilience4j
  • camel-resilience4j-micrometer
  • camel-resourceresolver-github
  • camel-rest
  • camel-rest-openapi
  • camel-restdsl-openapi-plugin
  • camel-robotframework
  • camel-rocketmq
  • camel-route-parser
  • camel-rss
  • camel-rxjava
  • camel-saga
  • camel-salesforce
  • camel-salesforce-codegen
  • camel-salesforce-maven-plugin
  • camel-salesforce-parent
  • camel-sap-netweaver
  • camel-saxon
  • camel-scheduler
  • camel-schematron
  • camel-seda
  • camel-servicenow
  • camel-servicenow-maven-plugin
  • camel-servicenow-parent
  • camel-servlet
  • camel-shell
  • camel-shiro
  • camel-sjms
  • camel-sjms2
  • camel-slack
  • camel-smb
  • camel-smooks
  • camel-smpp
  • camel-snakeyaml
  • camel-snmp
  • camel-soap
  • camel-solr
  • camel-splunk
  • camel-splunk-hec
  • camel-spring
  • camel-spring-ai-chat
  • camel-spring-ai-embeddings
  • camel-spring-ai-image
  • camel-spring-ai-parent
  • camel-spring-ai-tools
  • camel-spring-ai-vector-store
  • camel-spring-batch
  • camel-spring-cloud-config
  • camel-spring-jdbc
  • camel-spring-ldap
  • camel-spring-main
  • camel-spring-parent
  • camel-spring-rabbitmq
  • camel-spring-redis
  • camel-spring-security
  • camel-spring-ws
  • camel-spring-xml
  • camel-sql
  • camel-ssh
  • camel-stax
  • camel-stitch
  • camel-stream
  • camel-streamcaching-test
  • camel-stringtemplate
  • camel-stripe
  • camel-stub
  • camel-support
  • camel-swift
  • camel-syslog
  • camel-tahu
  • camel-tarfile
  • camel-telegram
  • camel-telemetry
  • camel-telemetry-dev
  • camel-tensorflow-serving
  • camel-test-infra-all
  • camel-test-infra-arangodb
  • camel-test-infra-artemis
  • camel-test-infra-aws-common
  • camel-test-infra-aws-v2
  • camel-test-infra-azure-common
  • camel-test-infra-azure-storage-blob
  • camel-test-infra-azure-storage-datalake
  • camel-test-infra-azure-storage-queue
  • camel-test-infra-cassandra
  • camel-test-infra-chatscript
  • camel-test-infra-cli
  • camel-test-infra-common
  • camel-test-infra-consul
  • camel-test-infra-core
  • camel-test-infra-couchbase
  • camel-test-infra-couchdb
  • camel-test-infra-dispatch-router
  • camel-test-infra-docling
  • camel-test-infra-elasticsearch
  • camel-test-infra-fhir
  • camel-test-infra-ftp
  • camel-test-infra-google-pubsub
  • camel-test-infra-hashicorp-vault
  • camel-test-infra-hazelcast
  • camel-test-infra-hivemq
  • camel-test-infra-ibmmq
  • camel-test-infra-iggy
  • camel-test-infra-ignite
  • camel-test-infra-infinispan
  • camel-test-infra-jaeger
  • camel-test-infra-jdbc
  • camel-test-infra-jetty
  • camel-test-infra-kafka
  • camel-test-infra-keycloak
  • camel-test-infra-mcp-everything
  • camel-test-infra-messaging-common
  • camel-test-infra-microprofile-lra
  • camel-test-infra-milvus
  • camel-test-infra-minio
  • camel-test-infra-mongodb
  • camel-test-infra-mosquitto
  • camel-test-infra-nats
  • camel-test-infra-neo4j
  • camel-test-infra-observability
  • camel-test-infra-ollama
  • camel-test-infra-openai-mock
  • camel-test-infra-openldap
  • camel-test-infra-opensearch
  • camel-test-infra-parent
  • camel-test-infra-pinecone
  • camel-test-infra-postgres
  • camel-test-infra-pulsar
  • camel-test-infra-qdrant
  • camel-test-infra-rabbitmq
  • camel-test-infra-redis
  • camel-test-infra-rocketmq
  • camel-test-infra-smb
  • camel-test-infra-solr
  • camel-test-infra-tensorflow-serving
  • camel-test-infra-triton
  • camel-test-infra-weaviate
  • camel-test-infra-xmpp
  • camel-test-infra-zookeeper
  • camel-test-junit5
  • camel-test-junit6
  • camel-test-main-junit5
  • camel-test-main-junit6
  • camel-test-parent
  • camel-test-spring-junit5
  • camel-test-spring-junit6
  • camel-threadpoolfactory-vertx
  • camel-thrift
  • camel-thymeleaf
  • camel-tika
  • camel-timer
  • camel-tooling-maven
  • camel-tooling-model
  • camel-tooling-util
  • camel-tracing
  • camel-twilio
  • camel-twitter
  • camel-undertow
  • camel-undertow-spring-security
  • camel-univocity-parsers
  • camel-util
  • camel-util-json
  • camel-validator
  • camel-validator-test-resources
  • camel-velocity
  • camel-vertx
  • camel-vertx-common
  • camel-vertx-http
  • camel-vertx-parent
  • camel-vertx-websocket
  • camel-wal
  • camel-wasm
  • camel-weather
  • camel-weaviate
  • camel-web3j
  • camel-webhook
  • camel-whatsapp
  • camel-wordpress
  • camel-workday
  • camel-xchange
  • camel-xj
  • camel-xml-io
  • camel-xml-io-dsl
  • camel-xml-io-util
  • camel-xml-jaxb
  • camel-xml-jaxb-dsl
  • camel-xml-jaxb-dsl-test
  • camel-xml-jaxb-dsl-test-definition
  • camel-xml-jaxb-dsl-test-spring
  • camel-xml-jaxp
  • camel-xml-jaxp-util
  • camel-xmlsecurity
  • camel-xmpp
  • camel-xpath
  • camel-xslt
  • camel-xslt-saxon
  • camel-yaml-dsl
  • camel-yaml-dsl-common
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • camel-yaml-dsl-parent
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
  • camel-yaml-io
  • camel-zeebe
  • camel-zendesk
  • camel-zip-deflater
  • camel-zipfile
  • camel-zookeeper
  • camel-zookeeper-master
  • catalog
  • components
  • core
  • coverage
  • docs
  • dsl
  • dummy-component
  • maven-plugins
  • spi-annotations
  • sync-properties-maven-plugin
  • test-infra
  • tests
  • tooling
  • tooling-parent

Skip-tests mode would test 649 modules (5 direct + 644 downstream), skip tests for 27 (generated code, meta-modules)

Modules Scalpel would test (649)
  • archetypes
  • bom-generator
  • bom-generator-maven-plugin
  • bundles-pom
  • camel
  • camel-a2a
  • camel-activemq
  • camel-activemq6
  • camel-ai-parent
  • camel-ai-tool
  • camel-amqp
  • camel-api
  • camel-api-component-maven-plugin
  • camel-arangodb
  • camel-archetype-api-component
  • camel-archetype-component
  • camel-archetype-dataformat
  • camel-archetype-java
  • camel-archetype-main
  • camel-archetype-spring
  • camel-as2
  • camel-as2-api
  • camel-as2-parent
  • camel-asn1
  • camel-asterisk
  • camel-atmosphere-websocket
  • camel-atom
  • camel-attachments
  • camel-avro
  • camel-avro-rpc
  • camel-avro-rpc-jetty
  • camel-avro-rpc-parent
  • camel-avro-rpc-spi
  • camel-aws-bedrock
  • camel-aws-cloudtrail
  • camel-aws-common
  • camel-aws-config
  • camel-aws-parameter-store
  • camel-aws-parent
  • camel-aws-secrets-manager
  • camel-aws-security-hub
  • camel-aws2-athena
  • camel-aws2-comprehend
  • camel-aws2-cw
  • camel-aws2-ddb
  • camel-aws2-ec2
  • camel-aws2-ecs
  • camel-aws2-eks
  • camel-aws2-eventbridge
  • camel-aws2-iam
  • camel-aws2-kinesis
  • camel-aws2-kms
  • camel-aws2-lambda
  • camel-aws2-mq
  • camel-aws2-msk
  • camel-aws2-polly
  • camel-aws2-redshift
  • camel-aws2-rekognition
  • camel-aws2-s3
  • camel-aws2-s3-vectors
  • camel-aws2-ses
  • camel-aws2-sns
  • camel-aws2-sqs
  • camel-aws2-step-functions
  • camel-aws2-sts
  • camel-aws2-textract
  • camel-aws2-timestream
  • camel-aws2-transcribe
  • camel-aws2-translate
  • camel-azure-common
  • camel-azure-cosmosdb
  • camel-azure-eventgrid
  • camel-azure-eventhubs
  • camel-azure-files
  • camel-azure-functions
  • camel-azure-key-vault
  • camel-azure-parent
  • camel-azure-schema-registry
  • camel-azure-servicebus
  • camel-azure-storage-blob
  • camel-azure-storage-datalake
  • camel-azure-storage-queue
  • camel-barcode
  • camel-base
  • camel-base-engine
  • camel-base64
  • camel-bean
  • camel-bean-validator
  • camel-beanio
  • camel-bindy
  • camel-bom
  • camel-bonita
  • camel-box
  • camel-box-api
  • camel-box-parent
  • camel-braintree
  • camel-browse
  • camel-buildtools
  • camel-caffeine
  • camel-camunda
  • camel-cassandraql
  • camel-catalog-common
  • camel-cbor
  • camel-chatscript
  • camel-chunk
  • camel-cli-connector
  • camel-cli-debug
  • camel-clickup
  • camel-cloudevents
  • camel-cluster
  • camel-cm-sms
  • camel-coap
  • camel-cometd
  • camel-component-maven-plugin
  • camel-console
  • camel-consul
  • camel-controlbus
  • camel-core
  • camel-core-all
  • camel-core-catalog
  • camel-core-engine
  • camel-core-languages
  • camel-core-model
  • camel-core-processor
  • camel-core-reifier
  • camel-core-xml
  • camel-couchbase
  • camel-couchdb
  • camel-cron
  • camel-crypto
  • camel-crypto-pgp
  • camel-csimple-joor
  • camel-csv
  • camel-cxf-common
  • camel-cxf-parent
  • camel-cxf-rest
  • camel-cxf-soap
  • camel-cxf-spring-common
  • camel-cxf-spring-rest
  • camel-cxf-spring-soap
  • camel-cxf-spring-transport
  • camel-cxf-transport
  • camel-cyberark-vault
  • camel-dapr
  • camel-dataformat
  • camel-dataset
  • camel-datasonnet
  • camel-debezium-common
  • camel-debezium-common-parent
  • camel-debezium-db2
  • camel-debezium-maven-plugin
  • camel-debezium-mongodb
  • camel-debezium-mysql
  • camel-debezium-oracle
  • camel-debezium-parent
  • camel-debezium-postgres
  • camel-debezium-sqlserver
  • camel-debug
  • camel-dependencies
  • camel-dfdl
  • camel-dhis2
  • camel-dhis2-api
  • camel-dhis2-parent
  • camel-diagram
  • camel-digitalocean
  • camel-direct
  • camel-disruptor
  • camel-djl
  • camel-dns
  • camel-docker
  • camel-docling
  • camel-drill
  • camel-dropbox
  • camel-dsl-modeline
  • camel-dsl-support
  • camel-dynamic-router
  • camel-ehcache
  • camel-eip-documentation-enricher-maven-plugin
  • camel-elasticsearch
  • camel-elasticsearch-rest-client
  • camel-enforcer-rules
  • camel-etc
  • camel-event
  • camel-exe
  • camel-exec
  • camel-fastjson
  • camel-fhir
  • camel-fhir-api
  • camel-fhir-parent
  • camel-file
  • camel-file-watch
  • camel-flatpack
  • camel-flink
  • camel-flowable
  • camel-fop
  • camel-fory
  • camel-freemarker
  • camel-ftp
  • camel-ftp-common
  • camel-geocoder
  • camel-git
  • camel-github2
  • camel-google-bigquery
  • camel-google-calendar
  • camel-google-common
  • camel-google-drive
  • camel-google-firestore
  • camel-google-functions
  • camel-google-mail
  • camel-google-parent
  • camel-google-pubsub
  • camel-google-secret-manager
  • camel-google-sheets
  • camel-google-speech-to-text
  • camel-google-storage
  • camel-google-text-to-speech
  • camel-google-vertexai
  • camel-google-vision
  • camel-graphql
  • camel-grok
  • camel-groovy
  • camel-grpc
  • camel-gson
  • camel-hashicorp-vault
  • camel-hazelcast
  • camel-headersmap
  • camel-health
  • camel-hl7
  • camel-http
  • camel-http-base
  • camel-http-common
  • camel-huawei-parent
  • camel-huaweicloud-common
  • camel-huaweicloud-dms
  • camel-huaweicloud-frs
  • camel-huaweicloud-functiongraph
  • camel-huaweicloud-iam
  • camel-huaweicloud-imagerecognition
  • camel-huaweicloud-obs
  • camel-huaweicloud-smn
  • camel-huggingface
  • camel-ibm-cos
  • camel-ibm-parent
  • camel-ibm-secrets-manager
  • camel-ibm-watson-discovery
  • camel-ibm-watson-language
  • camel-ibm-watson-speech-to-text
  • camel-ibm-watson-text-to-speech
  • camel-ibm-watsonx-ai
  • camel-ibm-watsonx-data
  • camel-ical
  • camel-iec60870
  • camel-iggy
  • camel-ignite
  • camel-infinispan
  • camel-infinispan-common
  • camel-infinispan-embedded
  • camel-infinispan-parent
  • camel-influxdb
  • camel-influxdb2
  • camel-irc
  • camel-ironmq
  • camel-iso8583
  • camel-jackson
  • camel-jackson-avro
  • camel-jackson-protobuf
  • camel-jackson3
  • camel-jackson3-avro
  • camel-jackson3-protobuf
  • camel-jackson3xml
  • camel-jacksonxml
  • camel-jandex
  • camel-jasypt
  • camel-java-io
  • camel-java-joor-dsl
  • camel-javascript
  • camel-jaxb
  • camel-jbang-console
  • camel-jbang-mcp
  • camel-jbang-parent
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-jcache
  • camel-jcr
  • camel-jdbc
  • camel-jetty
  • camel-jetty-common
  • camel-jfr
  • camel-jgroups
  • camel-jgroups-raft
  • camel-jira
  • camel-jms
  • camel-jmx
  • camel-jolt
  • camel-jooq
  • camel-joor
  • camel-jpa
  • camel-jq
  • camel-jsch
  • camel-jslt
  • camel-json-patch
  • camel-json-validator
  • camel-jsonapi
  • camel-jsonata
  • camel-jsonb
  • camel-jsonpath
  • camel-jsoup
  • camel-jt400
  • camel-jta
  • camel-jte
  • camel-kafka
  • camel-kamelet
  • camel-kamelet-main-support
  • camel-keycloak
  • camel-knative
  • camel-knative-api
  • camel-knative-http
  • camel-knative-parent
  • camel-kserve
  • camel-kubernetes
  • camel-kudu
  • camel-langchain4j-agent
  • camel-langchain4j-agent-api
  • camel-langchain4j-chat
  • camel-langchain4j-core
  • camel-langchain4j-embeddings
  • camel-langchain4j-embeddingstore
  • camel-langchain4j-embeddingstore-api
  • camel-langchain4j-tokenizer
  • camel-langchain4j-tools
  • camel-langchain4j-web-search
  • camel-language
  • camel-launcher
  • camel-launcher-container
  • camel-ldap
  • camel-ldif
  • camel-leveldb
  • camel-log
  • camel-lra
  • camel-lucene
  • camel-lumberjack
  • camel-lzf
  • camel-mail
  • camel-mail-microsoft-oauth
  • camel-main
  • camel-management
  • camel-management-api
  • camel-mapstruct
  • camel-master
  • camel-maven-plugin
  • camel-mdc
  • camel-metrics
  • camel-micrometer
  • camel-micrometer-observability
  • camel-micrometer-prometheus
  • camel-microprofile-config
  • camel-microprofile-fault-tolerance
  • camel-microprofile-health
  • camel-microprofile-parent
  • camel-milo
  • camel-milvus
  • camel-mina
  • camel-mina-sftp
  • camel-minio
  • camel-mllp
  • camel-mock
  • camel-mongodb
  • camel-mongodb-gridfs
  • camel-mustache
  • camel-mvel
  • camel-mybatis
  • camel-nats
  • camel-neo4j
  • camel-netty
  • camel-netty-http
  • camel-oaipmh
  • camel-oauth
  • camel-observability-services
  • camel-observation
  • camel-ocsf
  • camel-ognl
  • camel-olingo2
  • camel-olingo2-api
  • camel-olingo2-parent
  • camel-olingo4
  • camel-olingo4-api
  • camel-olingo4-parent
  • camel-once
  • camel-openai
  • camel-openapi-java
  • camel-openapi-rest-dsl-generator
  • camel-openapi-validator
  • camel-opensearch
  • camel-openstack
  • camel-opentelemetry
  • camel-opentelemetry-metrics
  • camel-opentelemetry2
  • camel-optaplanner
  • camel-package-maven-plugin
  • camel-paho
  • camel-paho-mqtt5
  • camel-parent
  • camel-parquet-avro
  • camel-pdf
  • camel-pg-replication-slot
  • camel-pgevent
  • camel-pgvector
  • camel-pinecone
  • camel-platform-http
  • camel-platform-http-jolokia
  • camel-platform-http-main
  • camel-platform-http-vertx
  • camel-plc4x
  • camel-pqc
  • camel-printer
  • camel-protobuf
  • camel-pubnub
  • camel-pulsar
  • camel-python
  • camel-qdrant
  • camel-quartz
  • camel-quickfix
  • camel-reactive-executor-tomcat
  • camel-reactive-executor-vertx
  • camel-reactive-streams
  • camel-reactor
  • camel-redis
  • camel-ref
  • camel-repackager-maven-plugin
  • camel-resilience4j
  • camel-resilience4j-micrometer
  • camel-resourceresolver-github
  • camel-rest
  • camel-rest-openapi
  • camel-restdsl-openapi-plugin
  • camel-robotframework
  • camel-rocketmq
  • camel-rss
  • camel-rxjava
  • camel-saga
  • camel-salesforce
  • camel-salesforce-codegen
  • camel-salesforce-maven-plugin
  • camel-salesforce-parent
  • camel-sap-netweaver
  • camel-saxon
  • camel-scheduler
  • camel-schematron
  • camel-seda
  • camel-servicenow
  • camel-servicenow-maven-plugin
  • camel-servicenow-parent
  • camel-servlet
  • camel-shell
  • camel-shiro
  • camel-sjms
  • camel-sjms2
  • camel-slack
  • camel-smb
  • camel-smooks
  • camel-smpp
  • camel-snakeyaml
  • camel-snmp
  • camel-soap
  • camel-solr
  • camel-splunk
  • camel-splunk-hec
  • camel-spring
  • camel-spring-ai-chat
  • camel-spring-ai-embeddings
  • camel-spring-ai-image
  • camel-spring-ai-parent
  • camel-spring-ai-tools
  • camel-spring-ai-vector-store
  • camel-spring-batch
  • camel-spring-cloud-config
  • camel-spring-jdbc
  • camel-spring-ldap
  • camel-spring-main
  • camel-spring-parent
  • camel-spring-rabbitmq
  • camel-spring-redis
  • camel-spring-security
  • camel-spring-ws
  • camel-spring-xml
  • camel-sql
  • camel-ssh
  • camel-stax
  • camel-stitch
  • camel-stream
  • camel-streamcaching-test
  • camel-stringtemplate
  • camel-stripe
  • camel-stub
  • camel-support
  • camel-swift
  • camel-syslog
  • camel-tahu
  • camel-tarfile
  • camel-telegram
  • camel-telemetry
  • camel-telemetry-dev
  • camel-tensorflow-serving
  • camel-test-infra-all
  • camel-test-infra-arangodb
  • camel-test-infra-artemis
  • camel-test-infra-aws-common
  • camel-test-infra-aws-v2
  • camel-test-infra-azure-common
  • camel-test-infra-azure-storage-blob
  • camel-test-infra-azure-storage-datalake
  • camel-test-infra-azure-storage-queue
  • camel-test-infra-cassandra
  • camel-test-infra-chatscript
  • camel-test-infra-cli
  • camel-test-infra-common
  • camel-test-infra-consul
  • camel-test-infra-core
  • camel-test-infra-couchbase
  • camel-test-infra-couchdb
  • camel-test-infra-dispatch-router
  • camel-test-infra-docling
  • camel-test-infra-elasticsearch
  • camel-test-infra-fhir
  • camel-test-infra-ftp
  • camel-test-infra-google-pubsub
  • camel-test-infra-hashicorp-vault
  • camel-test-infra-hazelcast
  • camel-test-infra-hivemq
  • camel-test-infra-ibmmq
  • camel-test-infra-iggy
  • camel-test-infra-ignite
  • camel-test-infra-infinispan
  • camel-test-infra-jaeger
  • camel-test-infra-jdbc
  • camel-test-infra-jetty
  • camel-test-infra-kafka
  • camel-test-infra-keycloak
  • camel-test-infra-mcp-everything
  • camel-test-infra-messaging-common
  • camel-test-infra-microprofile-lra
  • camel-test-infra-milvus
  • camel-test-infra-minio
  • camel-test-infra-mongodb
  • camel-test-infra-mosquitto
  • camel-test-infra-nats
  • camel-test-infra-neo4j
  • camel-test-infra-observability
  • camel-test-infra-ollama
  • camel-test-infra-openai-mock
  • camel-test-infra-openldap
  • camel-test-infra-opensearch
  • camel-test-infra-parent
  • camel-test-infra-pinecone
  • camel-test-infra-postgres
  • camel-test-infra-pulsar
  • camel-test-infra-qdrant
  • camel-test-infra-rabbitmq
  • camel-test-infra-redis
  • camel-test-infra-rocketmq
  • camel-test-infra-smb
  • camel-test-infra-solr
  • camel-test-infra-tensorflow-serving
  • camel-test-infra-triton
  • camel-test-infra-weaviate
  • camel-test-infra-xmpp
  • camel-test-infra-zookeeper
  • camel-test-junit5
  • camel-test-junit6
  • camel-test-main-junit5
  • camel-test-main-junit6
  • camel-test-parent
  • camel-test-spring-junit5
  • camel-test-spring-junit6
  • camel-threadpoolfactory-vertx
  • camel-thrift
  • camel-thymeleaf
  • camel-tika
  • camel-timer
  • camel-tooling-maven
  • camel-tooling-model
  • camel-tooling-util
  • camel-tracing
  • camel-twilio
  • camel-twitter
  • camel-undertow
  • camel-undertow-spring-security
  • camel-univocity-parsers
  • camel-util
  • camel-util-json
  • camel-validator
  • camel-validator-test-resources
  • camel-velocity
  • camel-vertx
  • camel-vertx-common
  • camel-vertx-http
  • camel-vertx-parent
  • camel-vertx-websocket
  • camel-wal
  • camel-wasm
  • camel-weather
  • camel-weaviate
  • camel-web3j
  • camel-webhook
  • camel-whatsapp
  • camel-wordpress
  • camel-workday
  • camel-xchange
  • camel-xj
  • camel-xml-io
  • camel-xml-io-dsl
  • camel-xml-io-util
  • camel-xml-jaxb
  • camel-xml-jaxb-dsl
  • camel-xml-jaxb-dsl-test
  • camel-xml-jaxb-dsl-test-definition
  • camel-xml-jaxb-dsl-test-spring
  • camel-xml-jaxp
  • camel-xml-jaxp-util
  • camel-xmlsecurity
  • camel-xmpp
  • camel-xpath
  • camel-xslt
  • camel-xslt-saxon
  • camel-yaml-dsl-common
  • camel-yaml-dsl-parent
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
  • camel-yaml-io
  • camel-zeebe
  • camel-zendesk
  • camel-zip-deflater
  • camel-zipfile
  • camel-zookeeper
  • camel-zookeeper-master
  • catalog
  • components
  • core
  • docs
  • dsl
  • maven-plugins
  • spi-annotations
  • sync-properties-maven-plugin
  • test-infra
  • tests
  • tooling
  • tooling-parent
Modules with tests skipped (27)
  • apache-camel
  • camel-allcomponents
  • camel-catalog
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

💡 Manual integration tests recommended:

You modified dsl/camel-jbang/camel-launcher. The related integration tests in dsl/camel-jbang/camel-jbang-it are excluded from CI. Consider running them manually:

mvn verify -f dsl/camel-jbang/camel-jbang-it -Djbang-it-test
All tested modules (673 modules)
  • Camel :: AI :: A2A
  • Camel :: AI :: ChatScript
  • Camel :: AI :: Deep Java Library
  • Camel :: AI :: Docling
  • Camel :: AI :: Hugging Face
  • Camel :: AI :: KServe
  • Camel :: AI :: LangChain4j :: Agent
  • Camel :: AI :: LangChain4j :: Agent :: API
  • Camel :: AI :: LangChain4j :: Chat
  • Camel :: AI :: LangChain4j :: Core
  • Camel :: AI :: LangChain4j :: Embedding
  • Camel :: AI :: LangChain4j :: Embedding Store :: API
  • Camel :: AI :: LangChain4j :: EmbeddingStore
  • Camel :: AI :: LangChain4j :: Tokenizer
  • Camel :: AI :: LangChain4j :: Tools
  • Camel :: AI :: LangChain4j :: Web Search
  • Camel :: AI :: Milvus
  • Camel :: AI :: Neo4j
  • Camel :: AI :: OpenAI
  • Camel :: AI :: PGVector
  • Camel :: AI :: Parent
  • Camel :: AI :: Pinecone
  • Camel :: AI :: Qdrant
  • Camel :: AI :: TensorFlow Serving
  • Camel :: AI :: Tool
  • Camel :: AI :: Weaviate
  • Camel :: AMQP
  • Camel :: API
  • Camel :: AS2 :: API
  • Camel :: AS2 :: Component
  • Camel :: AS2 :: Parent
  • Camel :: ASN.1
  • Camel :: AWS :: Common
  • Camel :: AWS :: Parent
  • Camel :: AWS CloudTrail
  • Camel :: AWS Config
  • Camel :: AWS Redshift Data
  • Camel :: AWS Rekognition
  • Camel :: AWS Security Hub
  • Camel :: AWS Step Functions
  • Camel :: AWS Timestream
  • Camel :: AWS2 :: Transcribe
  • Camel :: AWS2 Athena
  • Camel :: AWS2 Bedrock
  • Camel :: AWS2 CW
  • Camel :: AWS2 Comprehend
  • Camel :: AWS2 DDB
  • Camel :: AWS2 EC2
  • Camel :: AWS2 ECS
  • Camel :: AWS2 EKS
  • Camel :: AWS2 Eventbridge
  • Camel :: AWS2 IAM
  • Camel :: AWS2 KMS
  • Camel :: AWS2 Kinesis
  • Camel :: AWS2 Lambda
  • Camel :: AWS2 MQ
  • Camel :: AWS2 MSK
  • Camel :: AWS2 Parameter Store
  • Camel :: AWS2 Polly
  • Camel :: AWS2 S3
  • Camel :: AWS2 S3 Vectors
  • Camel :: AWS2 SES
  • Camel :: AWS2 SNS
  • Camel :: AWS2 SQS
  • Camel :: AWS2 STS
  • Camel :: AWS2 Secrets Manager
  • Camel :: AWS2 Textract
  • Camel :: AWS2 Translate
  • Camel :: ActiveMQ 5.x
  • Camel :: ActiveMQ 6.x
  • Camel :: All Components Sync point
  • Camel :: All Core Sync point
  • Camel :: ArangoDB
  • Camel :: Archetypes
  • Camel :: Archetypes :: API Component
  • Camel :: Archetypes :: Component
  • Camel :: Archetypes :: Data Format
  • Camel :: Archetypes :: Java Router
  • Camel :: Archetypes :: Main
  • Camel :: Archetypes :: Spring XML Based Router (deprecated)
  • Camel :: Assembly
  • Camel :: Asterisk
  • Camel :: Atmosphere WebSocket Servlet
  • Camel :: Atom
  • Camel :: Attachments
  • Camel :: Avro
  • Camel :: Avro RPC
  • Camel :: Avro RPC :: Jetty
  • Camel :: Avro RPC :: Parent
  • Camel :: Avro RPC :: Spi
  • Camel :: Azure :: Common
  • Camel :: Azure :: CosmosDB
  • Camel :: Azure :: Event Grid
  • Camel :: Azure :: Event Hubs
  • Camel :: Azure :: Files
  • Camel :: Azure :: Functions
  • Camel :: Azure :: Key Vault
  • Camel :: Azure :: Parent
  • Camel :: Azure :: Schema Registry
  • Camel :: Azure :: ServiceBus
  • Camel :: Azure :: Storage Blob
  • Camel :: Azure :: Storage Datalake
  • Camel :: Azure :: Storage Queue
  • Camel :: BOM
  • Camel :: BOM :: Generator
  • Camel :: Barcode
  • Camel :: Base
  • Camel :: Base Engine
  • Camel :: Base64
  • Camel :: Bean
  • Camel :: Bean validator
  • Camel :: BeanIO
  • Camel :: Bindy
  • Camel :: Bonita
  • Camel :: Box :: API
  • Camel :: Box :: Component
  • Camel :: Box :: Parent
  • Camel :: Braintree
  • Camel :: Browse
  • Camel :: Buildtools
  • Camel :: CBOR
  • Camel :: CM SMS
  • Camel :: CSV
  • Camel :: CXF :: Common
  • Camel :: CXF :: Common :: Spring
  • Camel :: CXF :: Parent
  • Camel :: CXF :: REST
  • Camel :: CXF :: REST :: Spring
  • Camel :: CXF :: SOAP
  • Camel :: CXF :: SOAP :: Spring
  • Camel :: CXF :: Transport
  • Camel :: CXF :: Transport :: Spring
  • Camel :: Caffeine
  • Camel :: Camunda
  • Camel :: Cassandra CQL
  • Camel :: Catalog
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated)
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Common
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Suggest
  • Camel :: Chunk
  • Camel :: ClickUp
  • Camel :: CloudEvents
  • Camel :: Cluster
  • Camel :: CoAP
  • Camel :: Cometd
  • Camel :: Common Telemetry
  • Camel :: Common Tracing (deprecated)
  • Camel :: Component DSL
  • Camel :: Components
  • Camel :: Console
  • Camel :: Consul
  • Camel :: Controlbus
  • Camel :: Core
  • Camel :: Core Catalog
  • Camel :: Core Engine
  • Camel :: Core Languages
  • Camel :: Core Model
  • Camel :: Core Modules
  • Camel :: Core Processor
  • Camel :: Core Reifier
  • Camel :: Core XML
  • Camel :: CouchDB
  • Camel :: Couchbase
  • Camel :: Coverage
  • Camel :: Cron
  • Camel :: Crypto
  • Camel :: Crypto PGP
  • Camel :: CyberArk Vault
  • Camel :: DFDL
  • Camel :: DHIS2
  • Camel :: DHIS2 :: Parent
  • Camel :: DHIS2 API
  • Camel :: DNS
  • Camel :: DSL :: CLI Connector
  • Camel :: DSL :: CLI Debug
  • Camel :: DSL :: Modeline
  • Camel :: DSL :: Parent
  • Camel :: DSL :: Support
  • Camel :: Dapr
  • Camel :: DataSet
  • Camel :: DataSonnet
  • Camel :: Dataformat
  • Camel :: Debezium :: Common
  • Camel :: Debezium :: Common :: Parent
  • Camel :: Debezium :: DB2
  • Camel :: Debezium :: Maven Plugin
  • Camel :: Debezium :: MongoDB
  • Camel :: Debezium :: MySQL
  • Camel :: Debezium :: Oracle
  • Camel :: Debezium :: Parent
  • Camel :: Debezium :: PostgreSQL
  • Camel :: Debezium :: SQL Server
  • Camel :: Debugging
  • Camel :: Dependencies
  • Camel :: Diagram
  • Camel :: DigitalOcean (deprecated)
  • Camel :: Direct
  • Camel :: Disruptor
  • Camel :: Docker
  • Camel :: Docs
  • Camel :: Drill
  • Camel :: Dropbox
  • Camel :: Dynamic Router
  • Camel :: Ehcache
  • Camel :: ElasticSearch Rest Client
  • Camel :: Elasticsearch Java API Client
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: Enforcer rules
  • Camel :: Etc
  • Camel :: Event
  • Camel :: Exe
  • Camel :: Exec
  • Camel :: FHIR
  • Camel :: FHIR :: API
  • Camel :: FHIR :: Parent
  • Camel :: FOP
  • Camel :: FTP
  • Camel :: FTP Common
  • Camel :: Fastjson
  • Camel :: File
  • Camel :: File Watch
  • Camel :: FlatPack
  • Camel :: Flink
  • Camel :: Flowable
  • Camel :: Fory
  • Camel :: Freemarker
  • Camel :: Geocoder
  • Camel :: Git
  • Camel :: GitHub2
  • Camel :: Google :: BigQuery
  • Camel :: Google :: Calendar
  • Camel :: Google :: Common
  • Camel :: Google :: Drive
  • Camel :: Google :: Firestore
  • Camel :: Google :: Functions
  • Camel :: Google :: Mail
  • Camel :: Google :: Parent
  • Camel :: Google :: PubSub
  • Camel :: Google :: Secret Manager
  • Camel :: Google :: Sheets
  • Camel :: Google :: Speech To Text
  • Camel :: Google :: Storage
  • Camel :: Google :: Text To Speech
  • Camel :: Google :: Vertex AI
  • Camel :: Google :: Vision
  • Camel :: GraphQL
  • Camel :: Grok
  • Camel :: Groovy
  • Camel :: Gson
  • Camel :: HL7
  • Camel :: HTTP
  • Camel :: HTTP :: Base
  • Camel :: HTTP :: Common
  • Camel :: HashiCorp :: Key Vault
  • Camel :: HazelCast
  • Camel :: Headers Map (deprecated)
  • Camel :: Health
  • Camel :: Huawei Cloud :: Common
  • Camel :: Huawei Cloud :: DMS
  • Camel :: Huawei Cloud :: FaceRecognition
  • Camel :: Huawei Cloud :: FunctionGraph
  • Camel :: Huawei Cloud :: IAM
  • Camel :: Huawei Cloud :: ImageRecognition
  • Camel :: Huawei Cloud :: OBS
  • Camel :: Huawei Cloud :: Parent
  • Camel :: Huawei Cloud :: SimpleNotification
  • Camel :: IBM :: Cloud Object Storage
  • Camel :: IBM :: Parent
  • Camel :: IBM :: Secrets Manager
  • Camel :: IBM :: Watson Discovery
  • Camel :: IBM :: Watson Language
  • Camel :: IBM :: Watson Speech to Text
  • Camel :: IBM :: Watson Text to Speech
  • Camel :: IBM :: watsonx.ai
  • Camel :: IBM :: watsonx.data
  • Camel :: IEC 60870 (deprecated)
  • Camel :: IRC (deprecated)
  • Camel :: ISO-8583
  • Camel :: Iggy
  • Camel :: Ignite
  • Camel :: Infinispan :: Common
  • Camel :: Infinispan :: Embedded
  • Camel :: Infinispan :: Parent
  • Camel :: Infinispan :: Remote
  • Camel :: InfluxDB
  • Camel :: InfluxDB2
  • Camel :: Integration Tests
  • Camel :: Integration Tests :: Stream Caching Tests
  • Camel :: Integration Tests :: Test Bundles
  • Camel :: Integration Tests :: Validator Resources
  • Camel :: IronMQ
  • Camel :: JAXB
  • Camel :: JBang :: Console
  • Camel :: JBang :: Core
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Main
  • Camel :: JBang :: Parent
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JCR
  • Camel :: JCache
  • Camel :: JDBC
  • Camel :: JGroups
  • Camel :: JGroups Raft
  • Camel :: JIRA
  • Camel :: JMS
  • Camel :: JMX
  • Camel :: JOOQ
  • Camel :: JPA
  • Camel :: JQ
  • Camel :: JSON validator
  • Camel :: JSON-B
  • Camel :: JSONATA
  • Camel :: JSon Path
  • Camel :: JSonApi
  • Camel :: JSoup
  • Camel :: JTA
  • Camel :: Jackson
  • Camel :: Jackson 3
  • Camel :: Jackson 3 Avro
  • Camel :: Jackson 3 Protobuf
  • Camel :: Jackson 3 XML
  • Camel :: Jackson Avro
  • Camel :: Jackson Protobuf
  • Camel :: Jackson XML
  • Camel :: Jandex
  • Camel :: Jasypt
  • Camel :: Java DSL IO
  • Camel :: Java DSL with jOOR
  • Camel :: Java Flight Recorder
  • Camel :: Java Template Engine
  • Camel :: Java Toolbox for IBM i
  • Camel :: JavaScript
  • Camel :: Jetty
  • Camel :: Jetty :: Common
  • Camel :: Jolt
  • Camel :: Jsch
  • Camel :: Jslt
  • Camel :: JsonPatch (deprecated)
  • Camel :: Kafka
  • Camel :: Kamelet
  • Camel :: Kamelet Main
  • Camel :: Kamelet Main :: Support
  • Camel :: Keycloak
  • Camel :: Knative :: Parent
  • Camel :: Knative API
  • Camel :: Knative Component
  • Camel :: Knative HTTP
  • Camel :: Kubernetes
  • Camel :: Kudu
  • Camel :: LDAP
  • Camel :: LDIF
  • Camel :: LZF
  • Camel :: Language
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: LevelDB (deprecated)
  • Camel :: Log
  • Camel :: Long-Running-Action
  • Camel :: Lucene
  • Camel :: Lumberjack
  • Camel :: MDC
  • Camel :: MINA
  • Camel :: MINA SFTP
  • Camel :: MLLP
  • Camel :: MVEL
  • Camel :: Mail
  • Camel :: Mail :: Microsoft OAuth
  • Camel :: Main
  • Camel :: Management
  • Camel :: Management API
  • Camel :: MapStruct
  • Camel :: Master
  • Camel :: Maven Plugins
  • Camel :: Maven Plugins :: BOM Generator
  • Camel :: Maven Plugins :: Camel API Component Plugin
  • Camel :: Maven Plugins :: Camel Maven Component
  • Camel :: Maven Plugins :: Camel Maven Package
  • Camel :: Maven Plugins :: Camel Maven Plugin
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator
  • Camel :: Maven Plugins :: Repackager
  • Camel :: Maven Plugins :: Sync Properties
  • Camel :: Maven Plugins :: XML DSL Doc Enricher
  • Camel :: Metrics
  • Camel :: MicroProfile :: Config
  • Camel :: MicroProfile :: Fault Tolerance
  • Camel :: MicroProfile :: Health
  • Camel :: MicroProfile :: Parent
  • Camel :: Micrometer
  • Camel :: Micrometer :: Observability 2
  • Camel :: Micrometer :: Observation (deprecated)
  • Camel :: Micrometer :: Prometheus
  • Camel :: Milo
  • Camel :: MinIO
  • Camel :: Mock
  • Camel :: MongoDB
  • Camel :: MongoDB GridFS
  • Camel :: Mustache
  • Camel :: MyBatis
  • Camel :: Nats
  • Camel :: Netty
  • Camel :: Netty HTTP
  • Camel :: OAIPMH
  • Camel :: OAuth
  • Camel :: OCSF
  • Camel :: OGNL (deprecated)
  • Camel :: Observability Services
  • Camel :: Olingo2 (Deprecated) :: API
  • Camel :: Olingo2 (Deprecated) :: Component
  • Camel :: Olingo2 (Deprecated) :: Parent
  • Camel :: Olingo4 (Deprecated) :: API
  • Camel :: Olingo4 (Deprecated) :: Component
  • Camel :: Olingo4 (Deprecated) :: Parent
  • Camel :: Once
  • Camel :: OpenAPI :: Validator
  • Camel :: OpenApi Java
  • Camel :: OpenSearch Java API Client
  • Camel :: OpenStack
  • Camel :: OpenTelemetry (deprecated)
  • Camel :: Opentelemetry 2
  • Camel :: Opentelemetry Metrics
  • Camel :: OptaPlanner
  • Camel :: PDF
  • Camel :: PLC4X
  • Camel :: PQC
  • Camel :: Paho (deprecated)
  • Camel :: Paho MQTT 5
  • Camel :: Parent
  • Camel :: Parquet Avro
  • Camel :: PgEvent
  • Camel :: PgReplicationSlot
  • Camel :: Platform HTTP
  • Camel :: Platform HTTP :: Jolokia
  • Camel :: Platform HTTP :: Main
  • Camel :: Platform HTTP :: Vert.x
  • Camel :: Printer
  • Camel :: Protobuf
  • Camel :: PubNub
  • Camel :: Pulsar
  • Camel :: Python
  • Camel :: Quartz
  • Camel :: QuickFIX/J
  • Camel :: REST
  • Camel :: REST OpenApi
  • Camel :: RSS
  • Camel :: Reactive Executor :: Tomcat
  • Camel :: Reactive Executor :: Vert.x (deprecated)
  • Camel :: Reactive Streams
  • Camel :: Reactor
  • Camel :: Redis
  • Camel :: Ref
  • Camel :: Resilience4j
  • Camel :: Resilience4j :: Micrometer
  • Camel :: ResourceResolver GitHub
  • Camel :: RobotFramework
  • Camel :: RocketMQ
  • Camel :: RxJava
  • Camel :: SAP NetWeaver
  • Camel :: SMB
  • Camel :: SMPP
  • Camel :: SNMP
  • Camel :: SOAP
  • Camel :: SPI Annotations
  • Camel :: SQL
  • Camel :: SSH
  • Camel :: SWIFT
  • Camel :: Saga
  • Camel :: Salesforce
  • Camel :: Salesforce :: CodeGen
  • Camel :: Salesforce :: Maven Plugin
  • Camel :: Salesforce :: Parent
  • Camel :: Saxon
  • Camel :: Scheduler
  • Camel :: Schematron
  • Camel :: Seda
  • Camel :: ServiceNow :: Component
  • Camel :: ServiceNow :: Maven Plugin
  • Camel :: ServiceNow :: Parent
  • Camel :: Servlet
  • Camel :: Shell
  • Camel :: Shiro
  • Camel :: Simple JMS
  • Camel :: Simple JMS2
  • Camel :: Slack
  • Camel :: Smooks :: Parent
  • Camel :: SnakeYAML
  • Camel :: Solr
  • Camel :: Splunk (deprecated)
  • Camel :: Splunk HEC
  • Camel :: Spring
  • Camel :: Spring :: Parent
  • Camel :: Spring AI :: Chat
  • Camel :: Spring AI :: Embeddings
  • Camel :: Spring AI :: Image
  • Camel :: Spring AI :: Parent
  • Camel :: Spring AI :: Tools
  • Camel :: Spring AI :: Vector Store
  • Camel :: Spring Batch
  • Camel :: Spring Cloud Config
  • Camel :: Spring JDBC
  • Camel :: Spring LDAP
  • Camel :: Spring Main
  • Camel :: Spring RabbitMQ
  • Camel :: Spring Redis
  • Camel :: Spring Security
  • Camel :: Spring Web Services
  • Camel :: Spring XML
  • Camel :: StAX
  • Camel :: Stitch
  • Camel :: Stream
  • Camel :: StringTemplate
  • Camel :: Stripe
  • Camel :: Stub
  • Camel :: Support
  • Camel :: Syslog
  • Camel :: Tahu
  • Camel :: Tar File
  • Camel :: Telegram
  • Camel :: Telemetry :: Dev
  • Camel :: Test :: JUnit5
  • Camel :: Test :: JUnit6
  • Camel :: Test :: Main :: JUnit5
  • Camel :: Test :: Main :: JUnit6
  • Camel :: Test :: Parent
  • Camel :: Test :: Spring :: JUnit5
  • Camel :: Test Infra
  • Camel :: Test Infra :: AWS Common
  • Camel :: Test Infra :: AWS SDK v2
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: ArangoDB
  • Camel :: Test Infra :: Artemis
  • Camel :: Test Infra :: Azure Common
  • Camel :: Test Infra :: Azure Storage Blob
  • Camel :: Test Infra :: Azure Storage Datalake
  • Camel :: Test Infra :: Azure Storage Queue
  • Camel :: Test Infra :: Cassandra
  • Camel :: Test Infra :: ChatScript
  • Camel :: Test Infra :: Cli (Camel CLI)
  • Camel :: Test Infra :: Common
  • Camel :: Test Infra :: Consul
  • Camel :: Test Infra :: Core
  • Camel :: Test Infra :: CouchDb
  • Camel :: Test Infra :: Couchbase
  • Camel :: Test Infra :: Dispatch Router
  • Camel :: Test Infra :: Docling
  • Camel :: Test Infra :: Elasticsearch
  • Camel :: Test Infra :: FHIR
  • Camel :: Test Infra :: Ftp
  • Camel :: Test Infra :: Google Pub/Sub
  • Camel :: Test Infra :: Hashicorp Vault
  • Camel :: Test Infra :: Hazelcast
  • Camel :: Test Infra :: HiveMQ
  • Camel :: Test Infra :: IBM MQ
  • Camel :: Test Infra :: Iggy
  • Camel :: Test Infra :: Ignite
  • Camel :: Test Infra :: Infinispan
  • Camel :: Test Infra :: JDBC
  • Camel :: Test Infra :: Jaeger
  • Camel :: Test Infra :: Jetty
  • Camel :: Test Infra :: Kafka
  • Camel :: Test Infra :: Keycloak
  • Camel :: Test Infra :: MCP Everything
  • Camel :: Test Infra :: Messaging Common
  • Camel :: Test Infra :: Microprofile LRA
  • Camel :: Test Infra :: Milvus
  • Camel :: Test Infra :: Minio
  • Camel :: Test Infra :: MongoDB
  • Camel :: Test Infra :: Mosquitto
  • Camel :: Test Infra :: Nats
  • Camel :: Test Infra :: Neo4j
  • Camel :: Test Infra :: Observability
  • Camel :: Test Infra :: Ollama
  • Camel :: Test Infra :: OpenAI Mock
  • Camel :: Test Infra :: Openladp
  • Camel :: Test Infra :: Parent
  • Camel :: Test Infra :: Pinecone
  • Camel :: Test Infra :: Postgres
  • Camel :: Test Infra :: Pulsar
  • Camel :: Test Infra :: RabbitMQ
  • Camel :: Test Infra :: Redis
  • Camel :: Test Infra :: RocketMQ
  • Camel :: Test Infra :: Server Message Block
  • Camel :: Test Infra :: Solr
  • Camel :: Test Infra :: TensorFlow Serving
  • Camel :: Test Infra :: Triton Inference Server
  • Camel :: Test Infra :: Weaviate
  • Camel :: Test Infra :: Xmpp
  • Camel :: Test Infra :: ZooKeeper
  • Camel :: Test Infra :: opensearch
  • Camel :: Test Infra :: qdrant
  • Camel :: Thread Pool Factory :: Vert.x (deprecated)
  • Camel :: Thrift
  • Camel :: Thymeleaf
  • Camel :: Tika
  • Camel :: Timer
  • Camel :: Tooling
  • Camel :: Tooling :: Maven
  • Camel :: Tooling :: Model
  • Camel :: Tooling :: OpenApi REST DSL Generator
  • Camel :: Tooling :: Util
  • Camel :: Tooling Parent
  • Camel :: Twilio
  • Camel :: Twitter
  • Camel :: Undertow
  • Camel :: Undertow Spring Security
  • Camel :: UniVocity Parsers
  • Camel :: Util
  • Camel :: Util :: JSon
  • Camel :: Validator
  • Camel :: Velocity
  • Camel :: Vert.x :: Common
  • Camel :: Vert.x :: HTTP
  • Camel :: Vert.x :: Parent
  • Camel :: Vert.x :: WebSocket
  • Camel :: Vertx
  • Camel :: WAL
  • Camel :: Wasm
  • Camel :: Weather
  • Camel :: Web3j
  • Camel :: Webhook
  • Camel :: Whatsapp
  • Camel :: Wordpress
  • Camel :: Workday
  • Camel :: XChange
  • Camel :: XJ
  • Camel :: XML DSL Jaxb :: Test :: Definition
  • Camel :: XML DSL Jaxb :: Test :: Spring
  • Camel :: XML DSL Jaxb :: Tests
  • Camel :: XML DSL with camel-xml-io
  • Camel :: XML DSL with camel-xml-jaxb
  • Camel :: XML IO
  • Camel :: XML IO Util
  • Camel :: XML JAXB
  • Camel :: XML JAXP
  • Camel :: XML JAXP Util
  • Camel :: XML Security
  • Camel :: XMPP
  • Camel :: XPath
  • Camel :: XSLT
  • Camel :: XSLT Saxon
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Common
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Parent
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: YAML IO
  • Camel :: Zeebe (deprecated)
  • Camel :: Zendesk
  • Camel :: Zip Deflater
  • Camel :: Zip File
  • Camel :: Zookeeper
  • Camel :: Zookeeper Master
  • Camel :: csimple jOOR (deprecated)
  • Camel :: gRPC
  • Camel :: iCal
  • Camel :: jOOR

⚙️ View full build and test results

@ammachado
ammachado marked this pull request as ready for review July 16, 2026 02:32
@ammachado
ammachado requested review from davsclaus, gnodet and oscerd July 16, 2026 02:33

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean infrastructure migration. Moves the native camel.exe build from MSVC (Windows-only, x64-only) to clang/llvm-mingw (any host OS, x64 + arm64), and all CI is green.

What looks good:

  • SHA256-pinned toolchain setup — the setup-llvm-mingw composite action pins version 20260616 with SHA256 verification before extracting, preventing supply-chain attacks on the toolchain itself
  • Profile activation migration — from OS-based (<family>windows</family>) to property-based (camel.exe.build=true), correctly wired through -Prelease in root pom.xml
  • CI restructured well — Linux-based cross-compilation for the build, with a separate camel-exe-windows-smoke job that downloads the artifact and smoke-tests on actual Windows
  • Release gate preservedmaven-enforcer-plugin checks for both camel-x64.exe and camel-arm64.exe before packaging
  • Jenkinsfile.deploy adds a Verify llvm-mingw stage that fails loudly if cross-compilers aren't on PATH
  • Comprehensive documentation — upgrade guide explains the naming change (camel.execamel-x64.exe/camel-arm64.exe), release guide adds llvm-mingw as a prerequisite, all READMEs updated
  • CamelExeBootstrapTest correctly auto-selects the architecture-appropriate exe (os.archx64/arm64)
  • RepackageMojo.includeArtifact() comment and test updated to reference both exe files

CI status: All green — camel-exe (1m), camel-exe-windows-smoke (1m), camel-launcher-native (10m), build (17) (2h25m), build (25) (2h11m) all passed.

No issues found.


Reviewed with Claude Code on behalf of @gnodet. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

@davsclaus davsclaus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: CAMEL-23703 cross-compile native camel.exe for x64 and arm64

Well-structured PR with comprehensive documentation updates. All CI checks pass. One infrastructure-coordination concern.

Confirmed Issues

1. Jenkinsfile.deploy: snapshot deploys will require llvm-mingw on Jenkins agents (Medium)

Adding -Dcamel.exe.build=true to MAVEN_PARAMS means every snapshot deploy on main, camel-4.18.x, and camel-4.14.x will activate the build-native-exe profile in tooling/camel-exe/pom.xml. The exec-maven-plugin invocations run at generate-test-resources phase — this phase executes even with -Dquickly and -DskipTests. If the ASF Jenkins agents don't have x86_64-w64-mingw32-clang and aarch64-w64-mingw32-clang on PATH, all snapshot deploys break.

The added Verify llvm-mingw stage provides a clear early error, which is good. But this is a new infrastructure prerequisite that didn't exist before.

Questions

1. Are the ASF Jenkins agents already provisioned with llvm-mingw?

The GitHub Actions workflow self-installs via .github/actions/setup-llvm-mingw/, but the Jenkinsfile assumes the toolchain is pre-installed. The release-guide.adoc update documents this as a prerequisite. If the agents aren't ready, should the Jenkinsfile changes be deferred to a follow-up PR merged after infrastructure setup?

2. Dual exe compilation in CI workflow (minor)

The exe is compiled twice in the GitHub Actions workflow: once in the camel-exe job and again in the camel-launcher-native job. Not incorrect, but the camel-launcher-native job could potentially reuse the artifact from camel-exe to save CI minutes.

No Issues Found

  • Git history: Builds on d603bdd (original camel.exe) — no prior intentional work reverted; this evolves the same feature.
  • Tests: Properly updated. Bootstrap test remains @EnabledOnOs(WINDOWS). Launcher IT drops the OS restriction (correct for cross-compiled file-existence checks).
  • Documentation: Upgrade guide documents the camel.execamel-x64.exe/camel-arm64.exe rename. Release guide documents llvm-mingw prerequisite. All READMEs updated.
  • Security: SHA256 pinning for the llvm-mingw download.
  • Attribution: Follows project rules.
  • Release profile: camel.exe.build=true added to root release profile — correct.

This review covers project rules and conventions. It does not replace specialized tools like CodeRabbit, Sourcery, or SonarCloud.

This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

Comment thread Jenkinsfile.deploy Outdated

@oscerd oscerd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The migration itself looks solid — genuine dual-target build (x86_64-w64-mingw32-clangcamel-x64.exe and aarch64-w64-mingw32-clangcamel-arm64.exe, both attached with separate classifiers and required by the enforcer), the llvm-mingw toolchain is version-pinned and SHA-256-verified over HTTPS with set -eo pipefail, all actions/* are SHA-pinned with persist-credentials: false, no hardcoded secrets, and -municode/wmain is correct. CI (camel-exe, windows-smoke, launcher-native) is green.

Two things worth resolving before merge, both non-code:

  • Release/deploy prerequisiteJenkinsfile.deploy sets -Dcamel.exe.build=true and the build-native-exe exec runs at generate-test-resources (even with -DskipTests), so if the ASF Jenkins agents don't have x86_64-w64-mingw32-clang/aarch64-w64-mingw32-clang on PATH, snapshot deploys on main (and the 4.18.x/4.14.x branches the Jenkinsfile gating anticipates) would break. The new loud-fail "Verify llvm-mingw" stage mitigates it, but the "are the agents provisioned?" question you raised looks still-open.
  • arm64 is compiled but not runtime-smoke-tested (no Windows-arm64 CI runner) — acceptable given the shared ~100-line source, just noting the residual risk.

Reviewed with Claude Code on behalf of Andrea Cosentino. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

@ammachado

Copy link
Copy Markdown
Contributor Author

On the "are the ASF Jenkins agents provisioned with llvm-mingw?" question (thanks @davsclaus, @oscerd): Jenkinsfile.deploy no longer depends on that. The Setup llvm-mingw stage reuses the toolchain if the cross-compilers are already on the agent's PATH, and otherwise downloads the pinned, SHA256-verified llvm-mingw into a persistent cache ($HOME/.cache/llvm-mingw) before deploying. So snapshot deploys work whether or not the agents are pre-provisioned, and if infra installs it system-wide later, the pipeline just stops downloading with no code change.

The download/verify logic and the pinned version + hash now live in one shared script, .github/actions/setup-llvm-mingw/install-llvm-mingw.sh, used by both the GitHub Actions composite action and the Jenkinsfile, so there's a single source of truth. The release guide is updated to reflect this.

I left the arm64 runtime-smoke gap as-is, since there's no Windows-arm64 runner; the source is shared with x64, which is smoke-tested.

Claude Code on behalf of @ammachado

@ammachado
ammachado requested review from davsclaus and oscerd July 16, 2026 13:48
@ammachado

Copy link
Copy Markdown
Contributor Author

On the dual exe compilation (thanks @davsclaus): I looked at reusing the camel-exe artifact in camel-launcher-native, and it turned out the exe compile wasn't where the time was going. The exe is a ~100-line static C file, so each cross-compile is a sub-second clang call. Reusing that specific artifact across jobs would mean uploading both classifiers, downloading and install:install-file-ing them, and splitting the single camel.exe.build property that currently drives the compile, the copy-into-launcher, and the release gate together. That is a fair bit of coupling to shave off a couple of seconds.

The real cost in that job was -am rebuilding the whole launcher reactor (camel-core, the jbang tree, and the rest) from source. So I dropped -am: camel-launcher-native now builds only buildingtools, camel-exe, and camel-launcher, and resolves the launcher's other in-repo modules as the current version's snapshot from Apache snapshots. That takes the job from ~10 min down to a couple. A preflight step checks that snapshot tree is actually published (using camel-launcher itself as the sentinel, since it is deployed after its dependencies) and fails early with a clear message if it is not, so a version-bump window reads as "snapshot not deployed yet" rather than a deep resolution error mid-build.

While in there I also moved both exe jobs off mvnd to plain mvn. With the smaller reactors the daemon bought no parallelism, and its cold-start was intermittently timing out, which was the earlier camel-launcher-native failure.

One tradeoff worth calling out: the launcher packaging check now trusts Apache snapshots for its unchanged upstream modules instead of building them from source. Since this workflow only triggers on camel-exe/camel-launcher changes, those upstream modules are identical to main, so it validates the same bytecode either way. Happy to reconsider if you would rather keep it hermetic with -am.

Claude Code on behalf of @ammachado

@ammachado
ammachado force-pushed the CAMEL-23703-native-exe-crosscompile branch from 35b9a33 to 7f3fb9d Compare July 16, 2026 20:58
Comment thread Jenkinsfile.deploy
@ammachado
ammachado requested a review from davsclaus July 17, 2026 05:29
@davsclaus
davsclaus force-pushed the CAMEL-23703-native-exe-crosscompile branch 2 times, most recently from ca16036 to a64efaa Compare July 17, 2026 21:00

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code review on behalf of gnodet

Re-review — rebased with CI refinements

Good refinements since my last review. The new commits add:

1. Self-provisioning llvm-mingw in Jenkinsfile.deploy ✅

  • Setup llvm-mingw stage gated to main and camel-4.22.x — older LTS branches deploy without native exe
  • Reuses the shared install-llvm-mingw.sh script (single source of truth for pinned version + SHA256)
  • Falls back to agent-provided toolchain if already on PATH, otherwise downloads into $HOME/.cache/llvm-mingw
  • Verification step confirms both cross-compilers are present before proceeding

2. Plain mvn for small reactors ✅

  • Explains rationale in install-mvnd/action.yml comment: mvnd's daemon cold-start timeout adds a flaky failure mode for small reactors with no parallelism benefit
  • camel-exe and camel-launcher-native jobs use plain mvn appropriately

3. Snapshot dependency resolution for launcher-native ✅

  • Uses -P apache-snapshots without -am to resolve upstream modules from Apache snapshot repo
  • Smart sentinel check: verifies camel-launcher snapshot metadata exists before starting, failing early with a clear message instead of a deep Maven resolution error
  • Significantly reduces build scope (handful of modules vs full launcher reactor)

4. Branch gating ✅

  • Native exe build gated to main and camel-4.22.x in both Jenkinsfile.deploy and the workflow comments
  • Older LTS branches continue deploying snapshots normally without the native build

All the infrastructure decisions are well-reasoned and documented with inline comments. CI is running. LGTM.

@davsclaus
davsclaus force-pushed the CAMEL-23703-native-exe-crosscompile branch from a64efaa to ae9762d Compare July 18, 2026 05:59
ammachado and others added 5 commits July 19, 2026 01:39
…and arm64 via llvm-mingw

Replace the MSVC/Windows-only native exe build with a host-OS-independent cross-compile using clang from the llvm-mingw toolchain (pinned, SHA256-verified). Produces bin/camel-x64.exe and bin/camel-arm64.exe from any host OS, activated by -Dcamel.exe.build=true or -Prelease.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…deploys

Extract the llvm-mingw download/verify logic into a shared install script
(.github/actions/setup-llvm-mingw/install-llvm-mingw.sh) so the pinned version
and SHA256 live in one place, used by both the GitHub Actions composite action
and Jenkinsfile.deploy.

Jenkinsfile.deploy now reuses an agent-provided toolchain when the
cross-compilers are already on PATH, and otherwise downloads the pinned,
SHA256-verified copy into a persistent cache. This removes the requirement to
pre-provision llvm-mingw on the ASF Jenkins agents raised in PR review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e reactor

The camel-exe job builds only a handful of modules, so the mvnd daemon
adds no parallelism benefit and exposed a flaky daemon cold-start timeout.
Run plain mvn there; keep mvnd for camel-launcher-native, whose -am reactor
pulls in the broader component tree. Document the guidance in install-mvnd.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…drop mvnd

Remove -am from the camel-launcher-native job so it builds only the listed
modules and resolves the launcher's upstream modules as the current version's
snapshot from Apache snapshots, instead of rebuilding the whole launcher reactor
from source. Add a preflight that fails early with a clear message if that
snapshot tree is not published yet, using camel-launcher (the terminal module,
deployed after its dependencies) as the sentinel.

Switch the job to plain mvn: with -am gone the reactor is only a few modules, so
the mvnd daemon buys no parallelism and its cold-start was a flaky failure mode.
Pin all jobs to Java 25 to stay aligned with the highest producer of the
snapshots and avoid class-version mismatches on the compile classpath.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…and camel-4.22.x

The snapshot-deploy pipeline runs on main, camel-4.18.x and camel-4.14.x.
The native camel.exe cross-compile only exists on main (and the upcoming
camel-4.22.x LTS), so the llvm-mingw setup and -Dcamel.exe.build no longer
run on the older LTS branches; those branches keep deploying their snapshots
without the native build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ammachado
ammachado force-pushed the CAMEL-23703-native-exe-crosscompile branch from ae9762d to d5b1abc Compare July 19, 2026 05:39
@davsclaus davsclaus added this to the 4.22.0 milestone Jul 19, 2026
@davsclaus
davsclaus merged commit 824cb17 into apache:main Jul 19, 2026
10 checks passed
@ammachado
ammachado deleted the CAMEL-23703-native-exe-crosscompile branch July 19, 2026 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants