Skip to content

CAMEL-24704: camel-yaml-dsl - accept beans written as a map keyed by name - #26921

Draft
ammachado wants to merge 7 commits into
apache:mainfrom
ammachado:CAMEL-24704
Draft

ammachado wants to merge 7 commits into
apache:mainfrom
ammachado:CAMEL-24704

Conversation

@ammachado

@ammachado ammachado commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Description

CAMEL-24704: the YAML DSL now accepts beans written as a map keyed by the bean name, next to the canonical list:

- beans:
    myProcessor:
      type: "#class:com.example.MyProcessor"

This is the shape people and models write first; it was rejected with "object found, array expected". The map form is accepted at the top level, in routeTemplate and in templatedRoute. The list stays the canonical form: camelYamlDsl-canonical.json (and camelYamlDsl-model.json derived from it) is unchanged, and the YAML Camel writes still uses the list.

Schema

  • New @YamlProperty.mapKey() (tooling/spi-annotations, copied into camel-api, @since 4.23): marks a list whose items may also be written as a map keyed by that property. Only the schema generator reads it; the deserializer of the property accepts the map form itself.
  • GenerateYamlSchemaMojo, non-canonical only: such a property becomes oneOf [array, object], with a synthesized BeanFactoryDefinitionByName (the bean definition without name) for the map values. The mojo fails the build if the item definition is missing or two properties give the same item type different keys.
  • beans (top level, routeTemplate, templatedRoute) is marked with mapKey = "name".

Runtime

  • BeansDeserializer.asBeanDefinitions(Node) reads either form and is used by the three deserializers (including the pre-parse). A map entry is read as the list item - name: <key> followed by its properties, so every existing check, the #class: prefix and the pre-parse dedup cache behave the same.
  • Errors name the bean: name: inside a map-form bean, a name declared twice, and an entry without properties under it. A list-form bean written without its - keeps a "beans is a list" message instead of being read as a bean called name.

Validator and camel-jbang

  • SchemaHints: the missing-- bean keeps its "beans is a list" hint under the new oneOf, and the id:/class: hint also covers map-form beans.
  • BeanRefChecks: declaredBeans and declaredBeanTypes recognize map-form names through one shared beans: block scanner. declaredBeanTypes used to bind every type: in the file to the last name: seen, which could attribute a bean's type to another bean; it now stays inside beans: blocks.

Docs

  • yaml-dsl.adoc: a NOTE with a fragment example of the map form. It is written as a fragment on purpose, so the doc sample generator does not offer it as a beans sample in camel_catalog_sample; the samples keep teaching the list.
  • Upgrade guide 4.23: tools that read camelYamlDsl.json (editors such as Kaoto) and expect beans to be type: array need to handle the oneOf.

Out of scope, as the JIRA suggests doing them one at a time: the other name-keyed lists (setHeaders, setVariables, template parameters, rest param, ...). With mapKey in place, each is an annotation plus its deserializer branch.

Tests: map form at the top level, in routeTemplate and in templatedRoute; empty map; quoted and dotted names; no double registration through the pre-parse; the error cases above; lenient vs canonical validation; the validator hints; the jbang bean reference and bean type checks. Results on the final head: camel-yaml-dsl 419/419, camel-yaml-dsl-validator 155/155, camel-yaml-dsl-maven-plugin 2/2, camel-jbang-core ai.* 268 run, 0 failures, 1 skipped (ExpressionEvaluatorLanguageTest, an existing skip).

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.

Not from the root folder: I built the touched modules (tooling/spi-annotations, core/camel-api, the four dsl/camel-yaml-dsl modules, catalog/camel-catalog, dsl/camel-jbang/camel-jbang-core, dsl/camel-jbang/camel-jbang-plugin-tui), committed the regenerated camelYamlDsl.json, YamlProperty copy and catalog yaml-dsl.adoc, and git status was clean afterwards.

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.

🤖 Generated with Claude Code on behalf of Adriano Machado (@ammachado)

This was generated by an AI agent and may contain inaccuracies. Please verify before relying on it.

ammachado and others added 7 commits September 26, 2026 22:45
…ap keyed by name

Task 1 of CAMEL-24704: the lenient camelYamlDsl.json schema now accepts
beans: written as a map from the bean name to the rest of the bean
definition (beans: {myBean: {type: ...}}), as an alternative to the
canonical list form (- name: myBean / type: ...). This applies to the
top-level beans, and to beans inside routeTemplate and templatedRoute.
The canonical schema and the runtime writer are unaffected: the list
stays the only canonical form.

- Add YamlProperty.mapKey(): when set on an array: property, the mojo
  emits a oneOf accepting either the array or a map keyed by that
  property, referencing a generated "<Type>By<MapKey>" definition (the
  item's own definition without the key property and without it in
  required).
- Mark the three beans YamlProperty declarations (BeansDeserializer,
  RouteTemplateDefinitionDeserializer, TemplatedRouteDefinitionDeserializer)
  with mapKey = "name".
- Regenerate camelYamlDsl.json; camelYamlDsl-canonical.json and
  camelYamlDsl-model.json are unchanged, confirming the canonical form
  is untouched.
- Add validator tests: beans as a map passes the classic (lenient)
  validator but not the canonical one, and a name: inside a map-form
  bean is rejected (the key is the name). Extend the existing map/list
  hint test with a canonical-mode assertion and a lenient scalar
  assertion.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e loaded

BeansDeserializer.asBeanDefinitions(Node) now accepts the beans: node as
either the canonical list (each item carrying its own name:) or a map
keyed by the bean name (CAMEL-24704). For the map form, each entry is
rewritten internally as a "- name: <key>" list item followed by its
properties before delegating to the existing BeanFactoryDefinition
deserialization, so resource assignment, notNull/script checks, the
#class: prefix and the pre-parse/parse dedup cache are unchanged for
both forms.

A bean entry under name: with its own name: property, a non-map value
(missing properties indented under the name), or a name declared twice
in the map now fail with a message that names the offending bean and
says what to write.

RouteTemplateDefinitionDeserializer and TemplatedRouteDefinitionDeserializer
now delegate to the same helper for their beans: property so routeTemplate
and templatedRoute accept the map form too.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… a map

BeanRefChecks.declaredBeans scanned only the canonical `- name: x` list
form under `beans:`, so a bean written as a map keyed by its name
(supported by the runtime and schema since earlier CAMEL-24704 commits)
was reported as an undeclared reference. The line scanner now also
recognizes the first indent level under a beans: block as a map key
(the bean name) when the line is not a list item, ignoring comment
lines so they neither set the child indent nor are read as names. The
canonical list form is unaffected.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
declaredBeanTypes bound each type: line to the last `- name: x` it saw,
with no awareness of a beans: block's boundaries or of the map-keyed
form added earlier in CAMEL-24704: a map-form bean's type was silently
attributed to an earlier, unrelated list-form bean name (or the last
name from a previous beans: block), so the interface check for options
like aggregationStrategy/idempotentRepository could miss a real
mismatch or misreport it against the wrong bean.

Both declaredBeans and declaredBeanTypes now share a single
scanBeansBlocks walk of each beans: block (list or map form, comments
ignored), which also resets "the last bean seen" whenever a block
closes, so a type: line outside any bean, or in a later block, is
never attributed to a stale name.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
yaml-dsl.adoc gains a NOTE next to the first beans example showing the map
form (beans keyed by name, without name:), and stating that the list is the
canonical form written by camel validate yaml --canonical, the canonical
schema and the YAML Camel writes.

The 4.23 upgrade guide documents the schema change for tools that read
camelYamlDsl.json (beans is now oneOf a list or a map keyed by name, with
the new BeanFactoryDefinitionByName definition); the canonical schema is
unchanged.

The catalog's mirrored copy of yaml-dsl.adoc is regenerated to match
(catalog/camel-catalog -Dquickly). docs/components/modules/others/pages/yaml-dsl.adoc
is a symlink to the source doc, so it needs no separate change.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t, not a sample

GenerateDocSamplesMojo treats every [source,yaml] block of yaml-dsl.adoc whose
first line starts with "- " as a route example: it is validated and, for
yaml-dsl.adoc, sampled as a "beans" entry served to AI models by
camel_catalog_sample. The map-form example added for CAMEL-24704 started with
"- beans:", so it became the 2nd beans sample and displaced the canonical
"declare a bean and call it from a route" sample that
CatalogSamplesTest.beansIsATopLevelEntryWithASample expects at index 1.

Drop the leading "- " so the example is a fragment (the value of `beans:`,
not a full route): the mojo then neither validates nor samples it, and models
keep being taught the canonical list form. Also renamed the example bean to
myMapBean so it no longer reuses beanFromMap from the list example right
above it, and added a short phrase to the NOTE clarifying the fragment is the
value of `beans:`.

Regenerated the catalog's mirrored copy of yaml-dsl.adoc
(catalog/camel-catalog -Dquickly). Rebuilt camel-jbang-core
(-Dquickly) and confirmed eip-samples.json is unchanged from HEAD.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…map form

F1: the missing-dash list-form mistake (- forgotten before name: myBean)
was read as beans: {name: myBean, type: ...} and lost its hint, both in
the lenient validator ("string found, object expected" with no hint) and
at runtime (the misleading "a bean written as a map is name: ..." message).
Add a validator hint for .*/beans/name "object expected" errors, and have
BeansDeserializer.asBeanDefinitions recognize a "name" key with a
non-mapping value as this same mistake.

F2: GenerateYamlSchemaMojo.generateKeyedDefinitions and allowMapForm used
withObject(), which silently creates an empty node for a renamed or
missing item definition, or lets a second mapKey overwrite the first for
the same item type. Fail the build loudly in both cases instead.

F3: the id/ref/class unknownProperty hint only matched the list form's
numeric index (/\d+/beans/\d+); extend it to also match a bean written as
a map keyed by its name (/\d+/beans/[^/]+), while keeping the "a bean item
is written as - name: ..." hint restricted to the list form, where an
unknown key does mean the item is keyed by name.

F4: clarify YamlProperty.mapKey()'s Javadoc: only the YAML schema
generator reads it, so the deserializer of the property that carries it
must accept the map form itself.

_Claude Code on behalf of Adriano Machado (@ammachado)_

_This was generated by an AI agent and may contain inaccuracies.
Please verify before relying on it._

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@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.

@gnodet-bot gnodet-bot 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.

Solid feature PR — well-structured code, comprehensive error handling, and thorough test coverage across all three beans: entry points. The map-to-list conversion in asBeanDefinitions() is clean, the schema generation correctly produces oneOf with a keyed definition, and the scanBeansBlocks() refactoring properly isolates blocks to prevent cross-block name/type leakage. One doc nit below.

Milestone: this targets main and the feature is @since 4.23 — should carry milestone 4.23.0.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

Comment thread dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc
@ammachado ammachado added this to the 4.23.0 milestone Sep 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • core/camel-api
  • docs
  • dsl/camel-jbang/camel-jbang-core
  • dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers
  • dsl/camel-yaml-dsl/camel-yaml-dsl-maven-plugin
  • dsl/camel-yaml-dsl/camel-yaml-dsl-validator
  • dsl/camel-yaml-dsl/camel-yaml-dsl
  • tooling/spi-annotations

ℹ️ Dependent modules were not tested because the total number of affected modules exceeded the threshold (50). Use the test-dependents label to force testing all dependents.


🔬 Scalpel shadow comparison — Scalpel: 646 of 694 tested, 22 compile-only — current: 80 all tested

Maveniverse Scalpel detected 646 affected modules (current approach: 80).

Skip-tests mode would test 646 modules (9 direct + 643 downstream), skip tests for 22 (generated code, meta-modules)

⚠️ Modules only in Scalpel (645)
  • archetypes
  • camel-a2a
  • camel-activemq
  • camel-activemq6
  • camel-ai-observability
  • camel-ai-observability-api
  • camel-ai-parent
  • camel-ai-resource
  • camel-ai-tool
  • camel-alibaba-common
  • camel-alibaba-eventbridge
  • camel-alibaba-fc
  • camel-alibaba-kms
  • camel-alibaba-mns
  • camel-alibaba-oss
  • camel-alibaba-ots
  • camel-alibaba-parent
  • camel-alibaba-sls
  • camel-alibaba-sms
  • 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-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-bonita
  • camel-box
  • camel-box-api
  • camel-box-parent
  • camel-braintree
  • camel-browse
  • camel-caffeine
  • camel-camunda
  • camel-cassandraql
  • camel-catalog-common
  • camel-cbor
  • camel-chatscript
  • camel-chunk
  • camel-cli-connector
  • camel-cli-debug
  • camel-clickhouse
  • 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-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-dataweave
  • 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-direct
  • camel-disruptor
  • camel-djl
  • camel-dns
  • camel-docker
  • camel-docling
  • camel-drill
  • camel-dropbox
  • camel-dsl-modeline
  • camel-dsl-support
  • camel-duckdb
  • camel-dynamic-router
  • camel-ehcache
  • camel-eip-documentation-enricher-maven-plugin
  • camel-elasticsearch
  • camel-elasticsearch-rest-client
  • 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-health
  • camel-hivemq
  • 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-iggy
  • camel-ignite
  • camel-infinispan
  • camel-infinispan-common
  • camel-infinispan-embedded
  • camel-infinispan-parent
  • camel-influxdb
  • camel-influxdb2
  • camel-iso8583
  • camel-jackson
  • camel-jackson-avro
  • camel-jackson-protobuf
  • camel-jackson3
  • camel-jackson3-avro
  • camel-jackson3-protobuf
  • camel-jackson3xml
  • camel-jacksonxml
  • camel-jactl
  • 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-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-ingest
  • camel-langchain4j-tokenizer
  • camel-langchain4j-web-search
  • camel-language
  • camel-launcher-container
  • camel-ldap
  • camel-ldif
  • 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-mcp-server
  • camel-mcp-server-api
  • 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-opa
  • 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-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-python3
  • camel-qdrant
  • camel-quartz
  • camel-quickfix
  • camel-quickjs
  • camel-reactive-streams
  • camel-reactor
  • camel-redis
  • camel-ref
  • camel-resilience4j
  • camel-resilience4j-micrometer
  • camel-resourceresolver-github
  • camel-rest
  • camel-rest-openapi
  • camel-rest-postman
  • camel-restdsl-openapi-plugin
  • camel-robotframework
  • camel-rocketmq
  • camel-rss
  • camel-rxjava
  • camel-saga
  • camel-salesforce
  • camel-salesforce-codegen
  • 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-spiffe
  • camel-splunk-hec
  • camel-spring
  • camel-spring-ai-chat
  • camel-spring-ai-embeddings
  • camel-spring-ai-image
  • camel-spring-ai-parent
  • 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-state-store
  • camel-state-store-parent
  • 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-clickhouse
  • camel-test-infra-common
  • camel-test-infra-consul
  • camel-test-infra-core
  • camel-test-infra-couchbase
  • camel-test-infra-couchdb
  • camel-test-infra-cyberark-vault
  • camel-test-infra-dispatch-router
  • camel-test-infra-docling
  • camel-test-infra-duckdb
  • 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-opa
  • 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-typesafe-ai-mock
  • 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-thrift
  • camel-thymeleaf
  • camel-tika
  • camel-timer
  • camel-tooling-maven
  • camel-toon
  • camel-tracing
  • camel-twilio
  • camel-twitter
  • camel-typesafe-ai
  • camel-ubl
  • camel-undertow
  • camel-undertow-spring-security
  • camel-univocity-parsers
  • camel-util
  • camel-validator
  • 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-zendesk
  • camel-zip-deflater
  • camel-zipfile
  • camel-zookeeper
  • camel-zookeeper-master
  • components
  • core
  • dsl
  • sync-properties-maven-plugin
  • test-infra
Modules only in current approach (79)
  • [ERROR]
  • [ERROR]
  • [ERROR]
  • [ERROR] mvn <args> -rf :camel-package-maven-plugin
  • [ERROR] After correcting the problems, you can resume the build with the command
  • [ERROR] Command execution failed.
  • [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.6.4:exec (default-cli) on project camel-package-maven-plugin: Command execution failed. Process exited with an error: 127 (Exit value: 127) -> [Help 1]
  • [ERROR] For more information about the errors and possible solutions, please read the following articles:
  • [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  • [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  • [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
  • at com.gradle.maven.cache.extension.c.a.a (SourceFile:46)
  • at com.gradle.maven.cache.extension.c.a.a (SourceFile:46)
  • at com.gradle.maven.cache.extension.c.b.a (SourceFile:62)
  • at com.gradle.maven.cache.extension.c.b.c (SourceFile:118)
  • at com.gradle.maven.cache.extension.c.c.a (SourceFile:26)
  • at com.gradle.maven.cache.extension.c.d.a (SourceFile:27)
  • at com.gradle.maven.cache.extension.c.g.a (SourceFile:27)
  • at com.gradle.maven.cache.extension.c.h$1.run (SourceFile:35)
  • at com.gradle.maven.cache.extension.c.h.a (SourceFile:31)
  • at com.gradle.maven.cache.extension.c.j.a (SourceFile:28)
  • at com.gradle.maven.cache.extension.c.m.a (SourceFile:80)
  • at com.gradle.maven.cache.extension.c.n.a (SourceFile:53)
  • at com.gradle.maven.cache.extension.c.o.a (SourceFile:18)
  • at com.gradle.maven.cache.extension.c.p.a (SourceFile:27)
  • at com.gradle.maven.cache.extension.c.q.a (SourceFile:23)
  • at com.gradle.maven.cache.extension.g.b.lambda$createProxy$0 (SourceFile:77)
  • at com.gradle.maven.scan.extension.internal.e.b.executeMojo (SourceFile:116)
  • at java.lang.reflect.Method.invoke (Method.java:569)
  • at java.lang.reflect.Method.invoke (Method.java:569)
  • at java.lang.reflect.Method.invoke (Method.java:569)
  • at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
  • at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
  • at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
  • at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
  • at jdk.proxy5.$Proxy69.execute (Unknown Source)
  • at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:306)
  • at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:408)
  • at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
  • at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
  • at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
  • at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
  • at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
  • at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
  • at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
  • at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
  • at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
  • at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
  • at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
  • at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
  • at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
  • at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:52)
  • at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:73)
  • at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:161)
  • at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:464)
  • at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:873)
  • at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:913)
  • at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
  • at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
  • at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
  • at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute (SourceFile:27)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute (SourceFile:30)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute (SourceFile:60)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute (SourceFile:67)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner.execute (SourceFile:167)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner.execute (SourceFile:60)
  • at org.gradle.internal.operations.DefaultBuildOperationRunner.run (SourceFile:48)
  • org.apache.commons.exec.ExecuteException: Process exited with an error: 127 (Exit value: 127)
Modules Scalpel would test (646)
  • archetypes ← downstream of org.apache.camel:camel-support
  • camel-a2a ← downstream of org.apache.camel:camel-support
  • camel-activemq ← downstream of org.apache.camel:camel-core-model
  • camel-activemq6 ← downstream of org.apache.camel:camel-core-model
  • camel-ai-observability ← downstream of org.apache.camel:camel-support
  • camel-ai-observability-api ← downstream of org.apache.camel:camel-support
  • camel-ai-parent ← downstream of org.apache.camel:camel-core-model
  • camel-ai-resource ← downstream of org.apache.camel:camel-support
  • camel-ai-tool ← downstream of org.apache.camel:camel-support
  • camel-alibaba-common ← downstream of org.apache.camel:camel-support
  • camel-alibaba-eventbridge ← downstream of org.apache.camel:camel-support
  • camel-alibaba-fc ← downstream of org.apache.camel:camel-support
  • camel-alibaba-kms ← downstream of org.apache.camel:camel-support
  • camel-alibaba-mns ← downstream of org.apache.camel:camel-support
  • camel-alibaba-oss ← downstream of org.apache.camel:camel-support
  • camel-alibaba-ots ← downstream of org.apache.camel:camel-support
  • camel-alibaba-parent ← downstream of org.apache.camel:camel-core-model
  • camel-alibaba-sls ← downstream of org.apache.camel:camel-support
  • camel-alibaba-sms ← downstream of org.apache.camel:camel-support
  • camel-amqp ← downstream of org.apache.camel:camel-core-model
  • camel-api ← core/camel-api/src/generated/java/org/apache/camel/spi/annotations/YamlProperty.java
  • camel-api-component-maven-plugin ← downstream of org.apache.camel:camel-test-junit6
  • camel-arangodb ← downstream of org.apache.camel:camel-support
  • camel-archetype-api-component ← downstream of org.apache.camel:camel-support
  • camel-archetype-component ← downstream of org.apache.camel:camel-support
  • camel-archetype-dataformat ← downstream of org.apache.camel:camel-support
  • camel-archetype-java ← downstream of org.apache.camel:camel-support
  • camel-archetype-main ← downstream of org.apache.camel:camel-support
  • camel-as2 ← downstream of org.apache.camel:camel-support
  • camel-as2-api ← downstream of org.apache.camel:camel-api
  • camel-as2-parent ← downstream of org.apache.camel:camel-core-model
  • camel-asn1 ← downstream of org.apache.camel:camel-support
  • camel-asterisk ← downstream of org.apache.camel:camel-support
  • camel-atmosphere-websocket ← downstream of org.apache.camel:camel-support
  • camel-atom ← downstream of org.apache.camel:camel-support
  • camel-attachments ← downstream of org.apache.camel:camel-support
  • camel-avro ← downstream of org.apache.camel:camel-support
  • camel-avro-rpc ← downstream of org.apache.camel:camel-support
  • camel-avro-rpc-jetty ← downstream of org.apache.camel:camel-api
  • camel-avro-rpc-parent ← downstream of org.apache.camel:camel-core-model
  • camel-avro-rpc-spi ← downstream of org.apache.camel:camel-core-model
  • camel-aws-bedrock ← downstream of org.apache.camel:camel-support
  • camel-aws-cloudtrail ← downstream of org.apache.camel:camel-support
  • camel-aws-common ← downstream of org.apache.camel:camel-support
  • camel-aws-config ← downstream of org.apache.camel:camel-support
  • camel-aws-parameter-store ← downstream of org.apache.camel:camel-support
  • camel-aws-parent ← downstream of org.apache.camel:camel-core-model
  • camel-aws-secrets-manager ← downstream of org.apache.camel:camel-support
  • camel-aws-security-hub ← downstream of org.apache.camel:camel-support
  • camel-aws2-athena ← downstream of org.apache.camel:camel-support
  • camel-aws2-comprehend ← downstream of org.apache.camel:camel-support
  • camel-aws2-cw ← downstream of org.apache.camel:camel-support
  • camel-aws2-ddb ← downstream of org.apache.camel:camel-support
  • camel-aws2-ec2 ← downstream of org.apache.camel:camel-support
  • camel-aws2-ecs ← downstream of org.apache.camel:camel-support
  • camel-aws2-eks ← downstream of org.apache.camel:camel-support
  • camel-aws2-eventbridge ← downstream of org.apache.camel:camel-support
  • camel-aws2-iam ← downstream of org.apache.camel:camel-support
  • camel-aws2-kinesis ← downstream of org.apache.camel:camel-support
  • camel-aws2-kms ← downstream of org.apache.camel:camel-support
  • camel-aws2-lambda ← downstream of org.apache.camel:camel-support
  • camel-aws2-mq ← downstream of org.apache.camel:camel-support
  • camel-aws2-msk ← downstream of org.apache.camel:camel-support
  • camel-aws2-polly ← downstream of org.apache.camel:camel-support
  • camel-aws2-redshift ← downstream of org.apache.camel:camel-support
  • camel-aws2-rekognition ← downstream of org.apache.camel:camel-support
  • camel-aws2-s3 ← downstream of org.apache.camel:camel-support
  • camel-aws2-s3-vectors ← downstream of org.apache.camel:camel-support
  • camel-aws2-ses ← downstream of org.apache.camel:camel-support
  • camel-aws2-sns ← downstream of org.apache.camel:camel-support
  • camel-aws2-sqs ← downstream of org.apache.camel:camel-support
  • camel-aws2-step-functions ← downstream of org.apache.camel:camel-support
  • camel-aws2-sts ← downstream of org.apache.camel:camel-support
  • camel-aws2-textract ← downstream of org.apache.camel:camel-support
  • camel-aws2-timestream ← downstream of org.apache.camel:camel-support
  • camel-aws2-transcribe ← downstream of org.apache.camel:camel-support
  • camel-aws2-translate ← downstream of org.apache.camel:camel-support
  • camel-azure-common ← downstream of org.apache.camel:camel-core-model
  • camel-azure-cosmosdb ← downstream of org.apache.camel:camel-support
  • camel-azure-eventgrid ← downstream of org.apache.camel:camel-support
  • camel-azure-eventhubs ← downstream of org.apache.camel:camel-support
  • camel-azure-files ← downstream of org.apache.camel:camel-core-model
  • camel-azure-functions ← downstream of org.apache.camel:camel-support
  • camel-azure-key-vault ← downstream of org.apache.camel:camel-support
  • camel-azure-parent ← downstream of org.apache.camel:camel-core-model
  • camel-azure-schema-registry ← downstream of org.apache.camel:camel-support
  • camel-azure-servicebus ← downstream of org.apache.camel:camel-support
  • camel-azure-storage-blob ← downstream of org.apache.camel:camel-support
  • camel-azure-storage-datalake ← downstream of org.apache.camel:camel-support
  • camel-azure-storage-queue ← downstream of org.apache.camel:camel-support
  • camel-barcode ← downstream of org.apache.camel:camel-support
  • camel-base ← downstream of org.apache.camel:camel-api
  • camel-base-engine ← downstream of org.apache.camel:camel-api
  • camel-base64 ← downstream of org.apache.camel:camel-support
  • camel-bean ← downstream of org.apache.camel:camel-support
  • camel-bean-validator ← downstream of org.apache.camel:camel-support
  • camel-beanio ← downstream of org.apache.camel:camel-support
  • camel-bindy ← downstream of org.apache.camel:camel-support
  • camel-bonita ← downstream of org.apache.camel:camel-support
  • camel-box ← downstream of org.apache.camel:camel-support
  • camel-box-api ← downstream of org.apache.camel:camel-api
  • camel-box-parent ← downstream of org.apache.camel:camel-core-model
  • camel-braintree ← downstream of org.apache.camel:camel-support
  • camel-browse ← downstream of org.apache.camel:camel-support
  • camel-caffeine ← downstream of org.apache.camel:camel-support
  • camel-camunda ← downstream of org.apache.camel:camel-support
  • camel-cassandraql ← downstream of org.apache.camel:camel-support
  • camel-catalog-common ← downstream of org.apache.camel:camel-support
  • camel-cbor ← downstream of org.apache.camel:camel-support
  • camel-chatscript ← downstream of org.apache.camel:camel-support
  • camel-chunk ← downstream of org.apache.camel:camel-support
  • camel-cli-connector ← downstream of org.apache.camel:camel-support
  • camel-cli-debug ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-clickhouse ← downstream of org.apache.camel:camel-support
  • camel-clickup ← downstream of org.apache.camel:camel-support
  • camel-cloudevents ← downstream of org.apache.camel:camel-support
  • camel-cluster ← downstream of org.apache.camel:camel-api
  • camel-cm-sms ← downstream of org.apache.camel:camel-support
  • camel-coap ← downstream of org.apache.camel:camel-support
  • camel-cometd ← downstream of org.apache.camel:camel-support
  • camel-component-maven-plugin ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-console ← downstream of org.apache.camel:camel-support
  • camel-consul ← downstream of org.apache.camel:camel-support
  • camel-controlbus ← downstream of org.apache.camel:camel-support
  • camel-core ← downstream of org.apache.camel:camel-xml-io
  • camel-core-all ← downstream of org.apache.camel:camel-api
  • camel-core-catalog ← downstream of org.apache.camel:camel-api
  • camel-core-engine ← downstream of org.apache.camel:camel-api
  • camel-core-languages ← downstream of org.apache.camel:camel-api
  • camel-core-model ← downstream of org.apache.camel:camel-api
  • camel-core-processor ← downstream of org.apache.camel:camel-api
  • camel-core-reifier ← downstream of org.apache.camel:camel-api
  • camel-core-xml ← downstream of org.apache.camel:camel-core-engine
  • camel-couchbase ← downstream of org.apache.camel:camel-support
  • camel-couchdb ← downstream of org.apache.camel:camel-support
  • camel-cron ← downstream of org.apache.camel:camel-support
  • camel-crypto ← downstream of org.apache.camel:camel-support
  • camel-crypto-pgp ← downstream of org.apache.camel:camel-support
  • camel-csv ← downstream of org.apache.camel:camel-support
  • camel-cxf-common ← downstream of org.apache.camel:camel-support
  • camel-cxf-parent ← downstream of org.apache.camel:camel-core-model
  • camel-cxf-rest ← downstream of org.apache.camel:camel-support
  • camel-cxf-soap ← downstream of org.apache.camel:camel-support
  • camel-cxf-spring-common ← downstream of org.apache.camel:camel-support
  • camel-cxf-spring-rest ← downstream of org.apache.camel:camel-core-model
  • camel-cxf-spring-soap ← downstream of org.apache.camel:camel-core-model
  • camel-cxf-spring-transport ← downstream of org.apache.camel:camel-core-model
  • camel-cxf-transport ← downstream of org.apache.camel:camel-support
  • camel-cyberark-vault ← downstream of org.apache.camel:camel-support
  • camel-dapr ← downstream of org.apache.camel:camel-support
  • camel-dataformat ← downstream of org.apache.camel:camel-support
  • camel-dataset ← downstream of org.apache.camel:camel-core-model
  • camel-datasonnet ← downstream of org.apache.camel:camel-support
  • camel-dataweave ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-common ← downstream of org.apache.camel:camel-support
  • camel-debezium-common-parent ← downstream of org.apache.camel:camel-support
  • camel-debezium-db2 ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-maven-plugin ← downstream of org.apache.camel:camel-support
  • camel-debezium-mongodb ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-mysql ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-oracle ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-parent ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-postgres ← downstream of org.apache.camel:camel-core-model
  • camel-debezium-sqlserver ← downstream of org.apache.camel:camel-core-model
  • camel-debug ← downstream of org.apache.camel:camel-support
  • camel-dependencies ← downstream of org.apache.camel:sync-properties-maven-plugin
  • camel-dfdl ← downstream of org.apache.camel:camel-support
  • camel-dhis2 ← downstream of org.apache.camel:camel-support
  • camel-dhis2-api ← downstream of org.apache.camel:camel-support
  • camel-dhis2-parent ← downstream of org.apache.camel:camel-core-model
  • camel-diagram ← downstream of org.apache.camel:camel-core-model
  • camel-direct ← downstream of org.apache.camel:camel-support
  • camel-disruptor ← downstream of org.apache.camel:camel-support
  • camel-djl ← downstream of org.apache.camel:camel-support
  • camel-dns ← downstream of org.apache.camel:camel-support
  • camel-docker ← downstream of org.apache.camel:camel-support
  • camel-docling ← downstream of org.apache.camel:camel-support
  • camel-drill ← downstream of org.apache.camel:camel-support
  • camel-dropbox ← downstream of org.apache.camel:camel-support
  • camel-dsl-modeline ← downstream of org.apache.camel:camel-support
  • camel-dsl-support ← downstream of org.apache.camel:camel-support
  • camel-duckdb ← downstream of org.apache.camel:camel-support
  • camel-dynamic-router ← downstream of org.apache.camel:camel-support
  • camel-ehcache ← downstream of org.apache.camel:camel-support
  • camel-eip-documentation-enricher-maven-plugin ← downstream of org.apache.camel:camel-util
  • camel-elasticsearch ← downstream of org.apache.camel:camel-support
  • camel-elasticsearch-rest-client ← downstream of org.apache.camel:camel-support
  • camel-event ← downstream of org.apache.camel:camel-support
  • camel-exec ← downstream of org.apache.camel:camel-support
  • camel-fastjson ← downstream of org.apache.camel:camel-support
  • camel-fhir ← downstream of org.apache.camel:camel-support
  • camel-fhir-api ← downstream of org.apache.camel:camel-support
  • camel-fhir-parent ← downstream of org.apache.camel:camel-core-model
  • camel-file ← downstream of org.apache.camel:camel-support
  • camel-file-watch ← downstream of org.apache.camel:camel-support
  • camel-flatpack ← downstream of org.apache.camel:camel-core-model
  • camel-flink ← downstream of org.apache.camel:camel-support
  • camel-flowable ← downstream of org.apache.camel:camel-support
  • camel-fop ← downstream of org.apache.camel:camel-support
  • camel-fory ← downstream of org.apache.camel:camel-support
  • camel-freemarker ← downstream of org.apache.camel:camel-support
  • camel-ftp ← downstream of org.apache.camel:camel-core-model
  • camel-ftp-common ← downstream of org.apache.camel:camel-core-model
  • camel-geocoder ← downstream of org.apache.camel:camel-support
  • camel-git ← downstream of org.apache.camel:camel-support
  • camel-github2 ← downstream of org.apache.camel:camel-support
  • camel-google-bigquery ← downstream of org.apache.camel:camel-support
  • camel-google-calendar ← downstream of org.apache.camel:camel-support
  • camel-google-common ← downstream of org.apache.camel:camel-support
  • camel-google-drive ← downstream of org.apache.camel:camel-support
  • camel-google-firestore ← downstream of org.apache.camel:camel-support
  • camel-google-functions ← downstream of org.apache.camel:camel-support
  • camel-google-mail ← downstream of org.apache.camel:camel-support
  • camel-google-parent ← downstream of org.apache.camel:camel-core-model
  • camel-google-pubsub ← downstream of org.apache.camel:camel-support
  • camel-google-secret-manager ← downstream of org.apache.camel:camel-support
  • camel-google-sheets ← downstream of org.apache.camel:camel-support
  • camel-google-speech-to-text ← downstream of org.apache.camel:camel-support
  • camel-google-storage ← downstream of org.apache.camel:camel-support
  • camel-google-text-to-speech ← downstream of org.apache.camel:camel-support
  • camel-google-vertexai ← downstream of org.apache.camel:camel-support
  • camel-google-vision ← downstream of org.apache.camel:camel-support
  • camel-graphql ← downstream of org.apache.camel:camel-support
  • camel-grok ← downstream of org.apache.camel:camel-support
  • camel-groovy ← downstream of org.apache.camel:camel-support
  • camel-grpc ← downstream of org.apache.camel:camel-support
  • camel-gson ← downstream of org.apache.camel:camel-support
  • camel-hashicorp-vault ← downstream of org.apache.camel:camel-support
  • camel-hazelcast ← downstream of org.apache.camel:camel-support
  • camel-health ← downstream of org.apache.camel:camel-api
  • camel-hivemq ← downstream of org.apache.camel:camel-support
  • camel-hl7 ← downstream of org.apache.camel:camel-core-model
  • camel-http ← downstream of org.apache.camel:camel-core-model
  • camel-http-base ← downstream of org.apache.camel:camel-support
  • camel-http-common ← downstream of org.apache.camel:camel-support
  • camel-huawei-parent ← downstream of org.apache.camel:camel-core-model
  • camel-huaweicloud-common ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-dms ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-frs ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-functiongraph ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-iam ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-imagerecognition ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-obs ← downstream of org.apache.camel:camel-support
  • camel-huaweicloud-smn ← downstream of org.apache.camel:camel-support
  • camel-huggingface ← downstream of org.apache.camel:camel-support
  • camel-ibm-cos ← downstream of org.apache.camel:camel-support
  • camel-ibm-parent ← downstream of org.apache.camel:camel-core-model
  • camel-ibm-secrets-manager ← downstream of org.apache.camel:camel-support
  • camel-ibm-watson-discovery ← downstream of org.apache.camel:camel-support
  • camel-ibm-watson-language ← downstream of org.apache.camel:camel-support
  • camel-ibm-watson-speech-to-text ← downstream of org.apache.camel:camel-support
  • camel-ibm-watson-text-to-speech ← downstream of org.apache.camel:camel-support
  • camel-ibm-watsonx-ai ← downstream of org.apache.camel:camel-support
  • camel-ibm-watsonx-data ← downstream of org.apache.camel:camel-support
  • camel-ical ← downstream of org.apache.camel:camel-support
  • camel-iggy ← downstream of org.apache.camel:camel-support
  • camel-ignite ← downstream of org.apache.camel:camel-support
  • camel-infinispan ← downstream of org.apache.camel:camel-core-model
  • camel-infinispan-common ← downstream of org.apache.camel:camel-support
  • camel-infinispan-embedded ← downstream of org.apache.camel:camel-core-model
  • camel-infinispan-parent ← downstream of org.apache.camel:camel-core-model
  • camel-influxdb ← downstream of org.apache.camel:camel-support
  • camel-influxdb2 ← downstream of org.apache.camel:camel-support
  • camel-iso8583 ← downstream of org.apache.camel:camel-support
  • camel-jackson ← downstream of org.apache.camel:camel-core-model
  • camel-jackson-avro ← downstream of org.apache.camel:camel-support
  • camel-jackson-protobuf ← downstream of org.apache.camel:camel-support
  • camel-jackson3 ← downstream of org.apache.camel:camel-core-model
  • camel-jackson3-avro ← downstream of org.apache.camel:camel-support
  • camel-jackson3-protobuf ← downstream of org.apache.camel:camel-support
  • camel-jackson3xml ← downstream of org.apache.camel:camel-support
  • camel-jacksonxml ← downstream of org.apache.camel:camel-support
  • camel-jactl ← downstream of org.apache.camel:camel-support
  • camel-jandex ← downstream of org.apache.camel:camel-support
  • camel-jasypt ← downstream of org.apache.camel:camel-base
  • camel-java-io ← downstream of org.apache.camel:camel-xml-io
  • camel-java-joor-dsl ← downstream of org.apache.camel:camel-core-languages
  • camel-javascript ← downstream of org.apache.camel:camel-support
  • camel-jaxb ← downstream of org.apache.camel:camel-core-model
  • camel-jbang-console ← downstream of org.apache.camel:camel-support
  • camel-jbang-mcp ← downstream of org.apache.camel:camel-catalog
  • camel-jbang-parent ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-jbang-plugin-mcp ← downstream of org.apache.camel:camel-jbang-core
  • camel-jbang-plugin-route-parser ← downstream of org.apache.camel:camel-jbang-core
  • camel-jbang-plugin-tui ← downstream of org.apache.camel:camel-catalog
  • camel-jbang-plugin-validate ← downstream of org.apache.camel:camel-jbang-core
  • camel-jcache ← downstream of org.apache.camel:camel-support
  • camel-jcr ← downstream of org.apache.camel:camel-support
  • camel-jdbc ← downstream of org.apache.camel:camel-support
  • camel-jetty ← downstream of org.apache.camel:camel-support
  • camel-jetty-common ← downstream of org.apache.camel:camel-core-model
  • camel-jfr ← downstream of org.apache.camel:camel-support
  • camel-jgroups ← downstream of org.apache.camel:camel-support
  • camel-jgroups-raft ← downstream of org.apache.camel:camel-support
  • camel-jira ← downstream of org.apache.camel:camel-support
  • camel-jms ← downstream of org.apache.camel:camel-support
  • camel-jmx ← downstream of org.apache.camel:camel-support
  • camel-jolt ← downstream of org.apache.camel:camel-support
  • camel-jooq ← downstream of org.apache.camel:camel-support
  • camel-joor ← downstream of org.apache.camel:camel-support
  • camel-jpa ← downstream of org.apache.camel:camel-support
  • camel-jq ← downstream of org.apache.camel:camel-support
  • camel-jsch ← downstream of org.apache.camel:camel-core-model
  • camel-jslt ← downstream of org.apache.camel:camel-support
  • camel-json-validator ← downstream of org.apache.camel:camel-support
  • camel-jsonapi ← downstream of org.apache.camel:camel-support
  • camel-jsonata ← downstream of org.apache.camel:camel-support
  • camel-jsonb ← downstream of org.apache.camel:camel-support
  • camel-jsonpath ← downstream of org.apache.camel:camel-support
  • camel-jsoup ← downstream of org.apache.camel:camel-support
  • camel-jt400 ← downstream of org.apache.camel:camel-support
  • camel-jta ← downstream of org.apache.camel:camel-support
  • camel-jte ← downstream of org.apache.camel:camel-support
  • camel-kafka ← downstream of org.apache.camel:camel-support
  • camel-kamelet ← downstream of org.apache.camel:camel-core-model
  • camel-kamelet-main-support ← downstream of org.apache.camel:camel-main
  • camel-keycloak ← downstream of org.apache.camel:camel-support
  • camel-knative ← downstream of org.apache.camel:camel-support
  • camel-knative-api ← downstream of org.apache.camel:camel-support
  • camel-knative-http ← downstream of org.apache.camel:camel-core-model
  • camel-knative-parent ← downstream of org.apache.camel:camel-core-model
  • camel-kserve ← downstream of org.apache.camel:camel-support
  • camel-kubernetes ← downstream of org.apache.camel:camel-support
  • camel-kudu ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-agent ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-agent-api ← downstream of org.apache.camel:camel-api
  • camel-langchain4j-chat ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-core ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-embeddings ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-embeddingstore ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-embeddingstore-api ← downstream of org.apache.camel:camel-api
  • camel-langchain4j-ingest ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-tokenizer ← downstream of org.apache.camel:camel-support
  • camel-langchain4j-web-search ← downstream of org.apache.camel:camel-support
  • camel-language ← downstream of org.apache.camel:camel-support
  • camel-launcher-container ← downstream of org.apache.camel:camel-launcher
  • camel-ldap ← downstream of org.apache.camel:camel-support
  • camel-ldif ← downstream of org.apache.camel:camel-support
  • camel-log ← downstream of org.apache.camel:camel-support
  • camel-lra ← downstream of org.apache.camel:camel-core-model
  • camel-lucene ← downstream of org.apache.camel:camel-support
  • camel-lumberjack ← downstream of org.apache.camel:camel-support
  • camel-lzf ← downstream of org.apache.camel:camel-support
  • camel-mail ← downstream of org.apache.camel:camel-support
  • camel-mail-microsoft-oauth ← downstream of org.apache.camel:camel-core-model
  • camel-main ← downstream of org.apache.camel:camel-api
  • camel-management ← downstream of org.apache.camel:camel-xml-io
  • camel-management-api ← downstream of org.apache.camel:camel-api
  • camel-mapstruct ← downstream of org.apache.camel:camel-support
  • camel-master ← downstream of org.apache.camel:camel-support
  • camel-maven-plugin ← downstream of org.apache.camel:camel-spring-main
  • camel-mcp-server ← downstream of org.apache.camel:camel-core-model
  • camel-mcp-server-api ← downstream of org.apache.camel:camel-support
  • camel-mdc ← downstream of org.apache.camel:camel-support
  • camel-metrics ← downstream of org.apache.camel:camel-support
  • camel-micrometer ← downstream of org.apache.camel:camel-support
  • camel-micrometer-observability ← downstream of org.apache.camel:camel-core-model
  • camel-micrometer-prometheus ← downstream of org.apache.camel:camel-core-model
  • camel-microprofile-config ← downstream of org.apache.camel:camel-support
  • camel-microprofile-fault-tolerance ← downstream of org.apache.camel:camel-support
  • camel-microprofile-health ← downstream of org.apache.camel:camel-core-model
  • camel-microprofile-parent ← downstream of org.apache.camel:camel-core-model
  • camel-milo ← downstream of org.apache.camel:camel-support
  • camel-milvus ← downstream of org.apache.camel:camel-support
  • camel-mina ← downstream of org.apache.camel:camel-support
  • camel-mina-sftp ← downstream of org.apache.camel:camel-core-model
  • camel-minio ← downstream of org.apache.camel:camel-support
  • camel-mllp ← downstream of org.apache.camel:camel-support
  • camel-mock ← downstream of org.apache.camel:camel-support
  • camel-mongodb ← downstream of org.apache.camel:camel-support
  • camel-mongodb-gridfs ← downstream of org.apache.camel:camel-support
  • camel-mustache ← downstream of org.apache.camel:camel-support
  • camel-mvel ← downstream of org.apache.camel:camel-support
  • camel-mybatis ← downstream of org.apache.camel:camel-core-model
  • camel-nats ← downstream of org.apache.camel:camel-support
  • camel-neo4j ← downstream of org.apache.camel:camel-support
  • camel-netty ← downstream of org.apache.camel:camel-support
  • camel-netty-http ← downstream of org.apache.camel:camel-core-model
  • camel-oaipmh ← downstream of org.apache.camel:camel-support
  • camel-oauth ← downstream of org.apache.camel:camel-support
  • camel-observability-services ← downstream of org.apache.camel:camel-core-model
  • camel-observation ← downstream of org.apache.camel:camel-support
  • camel-ocsf ← downstream of org.apache.camel:camel-support
  • camel-ognl ← downstream of org.apache.camel:camel-support
  • camel-olingo2 ← downstream of org.apache.camel:camel-support
  • camel-olingo2-api ← downstream of org.apache.camel:camel-core-model
  • camel-olingo2-parent ← downstream of org.apache.camel:camel-core-model
  • camel-olingo4 ← downstream of org.apache.camel:camel-support
  • camel-olingo4-api ← downstream of org.apache.camel:camel-support
  • camel-olingo4-parent ← downstream of org.apache.camel:camel-core-model
  • camel-once ← downstream of org.apache.camel:camel-support
  • camel-opa ← downstream of org.apache.camel:camel-support
  • camel-openai ← downstream of org.apache.camel:camel-support
  • camel-openapi-java ← downstream of org.apache.camel:camel-core-model
  • camel-openapi-rest-dsl-generator ← downstream of org.apache.camel:camel-api
  • camel-openapi-validator ← downstream of org.apache.camel:camel-core-model
  • camel-opensearch ← downstream of org.apache.camel:camel-support
  • camel-openstack ← downstream of org.apache.camel:camel-support
  • camel-opentelemetry ← downstream of org.apache.camel:camel-support
  • camel-opentelemetry-metrics ← downstream of org.apache.camel:camel-support
  • camel-opentelemetry2 ← downstream of org.apache.camel:camel-core-model
  • camel-optaplanner ← downstream of org.apache.camel:camel-support
  • camel-package-maven-plugin ← downstream of org.apache.camel:spi-annotations
  • camel-paho ← downstream of org.apache.camel:camel-support
  • camel-paho-mqtt5 ← downstream of org.apache.camel:camel-support
  • camel-parquet-avro ← downstream of org.apache.camel:camel-support
  • camel-pdf ← downstream of org.apache.camel:camel-support
  • camel-pg-replication-slot ← downstream of org.apache.camel:camel-support
  • camel-pgevent ← downstream of org.apache.camel:camel-support
  • camel-pgvector ← downstream of org.apache.camel:camel-support
  • camel-pinecone ← downstream of org.apache.camel:camel-support
  • camel-platform-http ← downstream of org.apache.camel:camel-core-model
  • camel-platform-http-jolokia ← downstream of org.apache.camel:camel-support
  • camel-platform-http-main ← downstream of org.apache.camel:camel-core-model
  • camel-platform-http-vertx ← downstream of org.apache.camel:camel-core-model
  • camel-plc4x ← downstream of org.apache.camel:camel-support
  • camel-pqc ← downstream of org.apache.camel:camel-support
  • camel-printer ← downstream of org.apache.camel:camel-support
  • camel-protobuf ← downstream of org.apache.camel:camel-support
  • camel-pubnub ← downstream of org.apache.camel:camel-support
  • camel-pulsar ← downstream of org.apache.camel:camel-support
  • camel-python ← downstream of org.apache.camel:camel-support
  • camel-python3 ← downstream of org.apache.camel:camel-support
  • camel-qdrant ← downstream of org.apache.camel:camel-support
  • camel-quartz ← downstream of org.apache.camel:camel-support
  • camel-quickfix ← downstream of org.apache.camel:camel-support
  • camel-quickjs ← downstream of org.apache.camel:camel-support
  • camel-reactive-streams ← downstream of org.apache.camel:camel-core-model
  • camel-reactor ← downstream of org.apache.camel:camel-support
  • camel-redis ← downstream of org.apache.camel:camel-support
  • camel-ref ← downstream of org.apache.camel:camel-support
  • camel-resilience4j ← downstream of org.apache.camel:camel-support
  • camel-resilience4j-micrometer ← downstream of org.apache.camel:camel-core-model
  • camel-resourceresolver-github ← downstream of org.apache.camel:camel-support
  • camel-rest ← downstream of org.apache.camel:camel-support
  • camel-rest-openapi ← downstream of org.apache.camel:camel-support
  • camel-rest-postman ← downstream of org.apache.camel:camel-support
  • camel-restdsl-openapi-plugin ← downstream of org.apache.camel:camel-core-engine
  • camel-robotframework ← downstream of org.apache.camel:camel-support
  • camel-rocketmq ← downstream of org.apache.camel:camel-support
  • camel-rss ← downstream of org.apache.camel:camel-support
  • camel-rxjava ← downstream of org.apache.camel:camel-support
  • camel-saga ← downstream of org.apache.camel:camel-support
  • camel-salesforce ← downstream of org.apache.camel:camel-core-model
  • camel-salesforce-codegen ← downstream of org.apache.camel:camel-core-model
  • camel-salesforce-parent ← downstream of org.apache.camel:camel-core-model
  • camel-sap-netweaver ← downstream of org.apache.camel:camel-support
  • camel-saxon ← downstream of org.apache.camel:camel-core-model
  • camel-scheduler ← downstream of org.apache.camel:camel-support
  • camel-schematron ← downstream of org.apache.camel:camel-support
  • camel-seda ← downstream of org.apache.camel:camel-support
  • camel-servicenow ← downstream of org.apache.camel:camel-support
  • camel-servicenow-maven-plugin ← downstream of org.apache.camel:camel-core-model
  • camel-servicenow-parent ← downstream of org.apache.camel:camel-core-model
  • camel-servlet ← downstream of org.apache.camel:camel-support
  • camel-shell ← downstream of org.apache.camel:camel-support
  • camel-shiro ← downstream of org.apache.camel:camel-support
  • camel-sjms ← downstream of org.apache.camel:camel-support
  • camel-sjms2 ← downstream of org.apache.camel:camel-support
  • camel-slack ← downstream of org.apache.camel:camel-support
  • camel-smb ← downstream of org.apache.camel:camel-support
  • camel-smooks ← downstream of org.apache.camel:camel-support
  • camel-smpp ← downstream of org.apache.camel:camel-support
  • camel-snakeyaml ← downstream of org.apache.camel:camel-support
  • camel-snmp ← downstream of org.apache.camel:camel-support
  • camel-soap ← downstream of org.apache.camel:camel-support
  • camel-solr ← downstream of org.apache.camel:camel-support
  • camel-spiffe ← downstream of org.apache.camel:camel-support
  • camel-splunk-hec ← downstream of org.apache.camel:camel-support
  • camel-spring ← downstream of org.apache.camel:camel-management-api
  • camel-spring-ai-chat ← downstream of org.apache.camel:camel-support
  • camel-spring-ai-embeddings ← downstream of org.apache.camel:camel-support
  • camel-spring-ai-image ← downstream of org.apache.camel:camel-support
  • camel-spring-ai-parent ← downstream of org.apache.camel:camel-core-model
  • camel-spring-ai-vector-store ← downstream of org.apache.camel:camel-support
  • camel-spring-batch ← downstream of org.apache.camel:camel-support
  • camel-spring-cloud-config ← downstream of org.apache.camel:camel-support
  • camel-spring-jdbc ← downstream of org.apache.camel:camel-core-model
  • camel-spring-ldap ← downstream of org.apache.camel:camel-support
  • camel-spring-main ← downstream of org.apache.camel:camel-core-model
  • camel-spring-parent ← downstream of org.apache.camel:camel-core-model
  • camel-spring-rabbitmq ← downstream of org.apache.camel:camel-support
  • camel-spring-redis ← downstream of org.apache.camel:camel-support
  • camel-spring-security ← downstream of org.apache.camel:camel-core-model
  • camel-spring-ws ← downstream of org.apache.camel:camel-support
  • camel-spring-xml ← downstream of org.apache.camel:camel-core-model
  • camel-sql ← downstream of org.apache.camel:camel-support
  • camel-ssh ← downstream of org.apache.camel:camel-support
  • camel-state-store ← downstream of org.apache.camel:camel-support
  • camel-state-store-parent ← downstream of org.apache.camel:camel-core-model
  • camel-stax ← downstream of org.apache.camel:camel-support
  • camel-stitch ← downstream of org.apache.camel:camel-support
  • camel-stream ← downstream of org.apache.camel:camel-support
  • camel-streamcaching-test ← downstream of org.apache.camel:camel-test-junit6
  • camel-stringtemplate ← downstream of org.apache.camel:camel-support
  • camel-stripe ← downstream of org.apache.camel:camel-support
  • camel-stub ← downstream of org.apache.camel:camel-core-model
  • camel-support ← downstream of org.apache.camel:camel-api
  • camel-swift ← downstream of org.apache.camel:camel-support
  • camel-syslog ← downstream of org.apache.camel:camel-support
  • camel-tahu ← downstream of org.apache.camel:camel-api
  • camel-tarfile ← downstream of org.apache.camel:camel-core-model
  • camel-telegram ← downstream of org.apache.camel:camel-support
  • camel-telemetry ← downstream of org.apache.camel:camel-support
  • camel-telemetry-dev ← downstream of org.apache.camel:camel-core-model
  • camel-tensorflow-serving ← downstream of org.apache.camel:camel-support
  • camel-test-infra-all ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-arangodb ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-artemis ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-aws-common ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-aws-v2 ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-azure-common ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-azure-storage-blob ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-azure-storage-datalake ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-azure-storage-queue ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-cassandra ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-chatscript ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-cli ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-clickhouse ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-common ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-consul ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-core ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-couchbase ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-couchdb ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-cyberark-vault ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-dispatch-router ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-docling ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-duckdb ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-elasticsearch ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-fhir ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-ftp ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-google-pubsub ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-hashicorp-vault ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-hazelcast ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-hivemq ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-ibmmq ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-iggy ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-ignite ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-infinispan ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-jaeger ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-jdbc ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-jetty ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-kafka ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-keycloak ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-mcp-everything ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-messaging-common ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-microprofile-lra ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-milvus ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-minio ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-mongodb ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-mosquitto ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-nats ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-neo4j ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-observability ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-ollama ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-opa ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-openai-mock ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-openldap ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-opensearch ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-parent ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-pinecone ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-postgres ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-pulsar ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-qdrant ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-rabbitmq ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-redis ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-rocketmq ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-smb ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-solr ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-tensorflow-serving ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-triton ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-typesafe-ai-mock ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-weaviate ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-xmpp ← downstream of org.apache.camel:spi-annotations
  • camel-test-infra-zookeeper ← downstream of org.apache.camel:spi-annotations
  • camel-test-junit5 ← downstream of org.apache.camel:camel-support
  • camel-test-junit6 ← downstream of org.apache.camel:camel-support
  • camel-test-main-junit5 ← downstream of org.apache.camel:camel-core-model
  • camel-test-main-junit6 ← downstream of org.apache.camel:camel-core-model
  • camel-test-parent ← downstream of org.apache.camel:camel-core-model
  • camel-test-spring-junit5 ← downstream of org.apache.camel:camel-core-model
  • camel-test-spring-junit6 ← downstream of org.apache.camel:camel-core-model
  • camel-thrift ← downstream of org.apache.camel:camel-support
  • camel-thymeleaf ← downstream of org.apache.camel:camel-support
  • camel-tika ← downstream of org.apache.camel:camel-support
  • camel-timer ← downstream of org.apache.camel:camel-support
  • camel-tooling-maven ← downstream of org.apache.camel:camel-support
  • camel-toon ← downstream of org.apache.camel:camel-support
  • camel-tracing ← downstream of org.apache.camel:camel-support
  • camel-twilio ← downstream of org.apache.camel:camel-support
  • camel-twitter ← downstream of org.apache.camel:camel-support
  • camel-typesafe-ai ← downstream of org.apache.camel:camel-support
  • camel-ubl ← downstream of org.apache.camel:camel-support
  • camel-undertow ← downstream of org.apache.camel:camel-support
  • camel-undertow-spring-security ← downstream of org.apache.camel:camel-core-model
  • camel-univocity-parsers ← downstream of org.apache.camel:camel-support
  • camel-util ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-validator ← downstream of org.apache.camel:camel-support
  • camel-velocity ← downstream of org.apache.camel:camel-support
  • camel-vertx ← downstream of org.apache.camel:camel-support
  • camel-vertx-common ← downstream of org.apache.camel:camel-support
  • camel-vertx-http ← downstream of org.apache.camel:camel-core-model
  • camel-vertx-parent ← downstream of org.apache.camel:camel-core-model
  • camel-vertx-websocket ← downstream of org.apache.camel:camel-support
  • camel-wal ← downstream of org.apache.camel:camel-support
  • camel-wasm ← downstream of org.apache.camel:camel-support
  • camel-weather ← downstream of org.apache.camel:camel-support
  • camel-weaviate ← downstream of org.apache.camel:camel-support
  • camel-web3j ← downstream of org.apache.camel:camel-support
  • camel-webhook ← downstream of org.apache.camel:camel-support
  • camel-whatsapp ← downstream of org.apache.camel:camel-support
  • camel-wordpress ← downstream of org.apache.camel:camel-support
  • camel-workday ← downstream of org.apache.camel:camel-support
  • camel-xchange ← downstream of org.apache.camel:camel-support
  • camel-xj ← downstream of org.apache.camel:camel-core-model
  • camel-xml-io ← downstream of org.apache.camel:camel-api
  • camel-xml-io-dsl ← downstream of org.apache.camel:camel-xml-io
  • camel-xml-io-util ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-xml-jaxb ← downstream of org.apache.camel:camel-api
  • camel-xml-jaxb-dsl ← downstream of org.apache.camel:camel-core-languages
  • camel-xml-jaxb-dsl-test ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-xml-jaxb-dsl-test-definition ← downstream of org.apache.camel:camel-support
  • camel-xml-jaxb-dsl-test-spring ← downstream of org.apache.camel:camel-support
  • camel-xml-jaxp ← downstream of org.apache.camel:camel-api
  • camel-xml-jaxp-util ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-xmlsecurity ← downstream of org.apache.camel:camel-support
  • camel-xmpp ← downstream of org.apache.camel:camel-support
  • camel-xpath ← downstream of org.apache.camel:camel-support
  • camel-xslt ← downstream of org.apache.camel:camel-support
  • camel-xslt-saxon ← downstream of org.apache.camel:camel-core-model
  • camel-yaml-dsl-common ← downstream of org.apache.camel:camel-core-engine
  • camel-yaml-dsl-parent ← downstream of org.apache.camel:camel-package-maven-plugin
  • camel-yaml-dsl-validator ← dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/main/java/org/apache/camel/dsl/yaml/validator/SchemaHints.java, dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlCanonicalValidatorTest.java, dsl/camel-yaml-dsl/camel-yaml-dsl-validator/src/test/java/org/apache/camel/dsl/yaml/validator/YamlValidatorPropertyHintTest.java
  • camel-yaml-dsl-validator-maven-plugin ← downstream of org.apache.camel:camel-yaml-dsl-validator
  • camel-yaml-io ← downstream of org.apache.camel:camel-api
  • camel-zendesk ← downstream of org.apache.camel:camel-support
  • camel-zip-deflater ← downstream of org.apache.camel:camel-support
  • camel-zipfile ← downstream of org.apache.camel:camel-support
  • camel-zookeeper ← downstream of org.apache.camel:camel-support
  • camel-zookeeper-master ← downstream of org.apache.camel:camel-support
  • components ← downstream of org.apache.camel:camel-core-model
  • core ← downstream of org.apache.camel:camel-package-maven-plugin
  • dsl ← downstream of org.apache.camel:camel-package-maven-plugin
  • spi-annotations ← tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/YamlProperty.java
  • sync-properties-maven-plugin ← downstream of org.apache.camel:camel-util
  • test-infra ← downstream of org.apache.camel:spi-annotations
Modules with tests skipped (22)
  • apache-camel
  • camel-allcomponents
  • camel-catalog-console
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • 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-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-salesforce-maven-plugin
  • coverage
  • dummy-component

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

⚠️ Some tests are disabled on GitHub Actions (@DisabledIfSystemProperty(named = "ci.env.name")) and require manual verification:

  • dsl/camel-jbang/camel-jbang-core: 2 test(s) disabled on GitHub Actions

💡 Manual integration tests recommended:

You modified dsl/camel-jbang/camel-jbang-core. 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
Build reactor — dependencies compiled but only changed modules were tested (9 modules, 1m 27s total)

Total reactor time: 1m 27s

Module Duration Status
Camel :: Catalog :: Camel Catalog 27.7s SUCCESS
Camel :: Docs 20.0s SUCCESS
Camel :: YAML DSL 13.1s SUCCESS
Camel :: API 8.1s SUCCESS
Camel :: YAML DSL :: Validator 7.2s SUCCESS
Camel :: YAML DSL :: Deserializers 5.8s SUCCESS
Camel :: SPI Annotations 2.4s SUCCESS
Camel :: YAML DSL :: Maven Plugins 2.2s SUCCESS
Camel :: JBang :: Core n/a

Top 20 slowest modules:

  • Camel :: Catalog :: Camel Catalog (27.7s)
  • Camel :: Docs (20.0s)
  • Camel :: YAML DSL (13.1s)
  • Camel :: API (8.1s)
  • Camel :: YAML DSL :: Validator (7.2s)
  • Camel :: YAML DSL :: Deserializers (5.8s)
  • Camel :: SPI Annotations (2.4s)
  • Camel :: YAML DSL :: Maven Plugins (2.2s)

⚙️ View full build and test results

@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.

Thanks @ammachado, this is a careful implementation of the JIRA proposal. The list stays canonical: the canonical schema, the writer and --canonical still use it, and the map form is only in the lenient schema. The map-to-list conversion reuses every existing check and the pre-parse dedup. The "forgotten - " case gets its own error, so the two forms don't blur, and the upgrade-guide note for schema consumers is appreciated.

One small consistency point, inline: the new hint suggests the flow form myBean: {type: ...}, but the jbang bean-reference scanner only recognizes the block form. A model that follows the hint then gets "bean not declared", and camel_write_file refuses the file. Either write the hint in block form, or teach MAP_KEY_PATTERN the flow form.

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

append("type", ".*/beans/name", m -> m.message().contains("object expected"),
m -> "beans is a list: each bean starts with \"- \": - name: myBean followed by type:"
+ " \"#class:com.example.MyBean\" (indented under the -); or a map keyed by the bean name:"
+ " myBean: {type: ...}"),

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.

This suggests the flow form myBean: {type: ...}, which the deserializer accepts, but BeanRefChecks.MAP_KEY_PATTERN only matches a key line ending in :. So declaredBeans does not see the bean, a ref: myBean / ${bean:myBean} is reported as undeclared, and camel_write_file refuses the file. Maybe write the hint in block form (myBean: then type: ... indented under it), which matches the docs example?


/** The beans declared under {@code beans:} with a {@code #class:} type, name to fully qualified class name. */
/** A bean written as a map: the name alone as the key, its properties indented below (CAMEL-24704). */
static final Pattern MAP_KEY_PATTERN = Pattern.compile("^(\"[^\"]+\"|'[^']+'|[^\\s:#\"'][^:#]*?):\\s*$");

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.

Alternatively (or as well), this could recognize a flow-mapping bean at the child indent (myBean: {type: "#class:..."}) so the reference and type checks match what the deserializer accepts. A test with the flow form would cover it.

@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.

Follow-up on the hints (this replaces my earlier "write the hint in block form" suggestion; my approval of the change itself stands).

The hints are what steer AI models writing Camel YAML, so they should only teach the canonical form. The list stays canonical in this PR (canonical schema, writer, docs), so a hint should not advertise the map form as an alternative, in flow style or block style. Two spots, inline:

  1. The missing-- hint offers myBean: {type: ...} as an alternative. I'd drop that tail so it only shows the list form. This also avoids the BeanRefChecks blind spot for the flow form, where a model that follows the hint has its file refused as "bean not declared".
  2. The widened id/ref/class hint reads oddly for a map-form bean: for myBean: {class: ...} it says "(name instead of class, type instead of class)", but the name is already the key. The new test only checks the "type instead of class" part, so it doesn't catch this.

Separately, MAP_KEY_PATTERN still doesn't see a flow-style map bean (myBean: {type: "#class:..."}). The runtime accepts it and a model may write it unprompted, so a small fix plus a test would be good to have.

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

Comment on lines +269 to +271
m -> "beans is a list: each bean starts with \"- \": - name: myBean followed by type:"
+ " \"#class:com.example.MyBean\" (indented under the -); or a map keyed by the bean name:"
+ " myBean: {type: ...}"),

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.

Hints should steer towards the canonical list form only, so I'd not advertise the map form (especially the flow style, which BeanRefChecks does not recognise):

Suggested change
m -> "beans is a list: each bean starts with \"- \": - name: myBean followed by type:"
+ " \"#class:com.example.MyBean\" (indented under the -); or a map keyed by the bean name:"
+ " myBean: {type: ...}"),
m -> "beans is a list: each bean starts with \"- \": - name: myBean followed by type:"
+ " \"#class:com.example.MyBean\" (indented under the -)"),

unknownProperty("/\\d+/beans/\\d+", m -> Set.of("id", "ref", "class").contains(m.unknown()),
// - id: myBean / class: ... , or myBean: {class: ...} in the map form: the bean properties are name
// and type (CAMEL-24704 F3: the map form's item is keyed by name, not by an index)
unknownProperty("/\\d+/beans/[^/]+", m -> Set.of("id", "ref", "class").contains(m.unknown()),

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.

Now that this also matches a map-form bean (/beans/myBean), the message "(name instead of class, type instead of class)" is misleading there, because the name is already the key. Could the "name instead of ..." part be emitted only when the last path segment is a numeric index? A test asserting the map-form message does not say "name instead of" would pin it.

@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.

Stepping back from the hint details: I think the PR does exactly what CAMEL-24704 proposed, but on reflection that proposal (accept the map form, keep the list canonical) leaves us with two styles for the same thing. All docs, examples, the YAML writer, the canonical schema and Kaoto use the list, while the runtime and the lenient schema quietly accept a map. Users and AI models will copy whichever they see first, and every tool that reads the schema has to handle both. I don't want us in that half-and-half state.

So I think we should pick one:

  1. Switch fully to the name-keyed map. Change all docs and examples, the YAML writer, the canonical schema, the hints and Kaoto to the map form, and deprecate the list form (still accepted, but no longer shown anywhere). If we go this way it should be a deliberate decision, discussed on the dev list since it affects Kaoto and other schema consumers. It should cover beans first, with the same plan for the other name-keyed lists in the JIRA (parameters, headers, variables, param).
  2. Stay with the list only. Don't accept the map form, and fix the "AI writes a map" problem through the hints alone: a clear "beans is a list: - name: myBean ..." message on the map shape, which the validator already largely gives.

We need to think more about this before going further, so I'm changing my review to request changes to hold the merge until it's decided. Sorry for the back-and-forth, @ammachado. The implementation itself is careful, and if we choose option 1 most of it (deserializer, schema oneOf, the mapKey annotation) is the foundation we'd need anyway.

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

@davsclaus
davsclaus marked this pull request as draft September 27, 2026 08:33
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.

3 participants