Good point, and it's already partly there: each body type can carry a javaType with the fully qualified class name, and when the type depends on an option, such as operation=putObject, each option value can have its own javaType. Around 160 component sides have a single type, and there are around 870 per-option types.
Milvus is a good example of what isn't covered yet. The action comes from the CamelMilvusAction header rather than an endpoint option, so today the SDK classes (InsertParam, SearchSimpleParam, MutationResult, SearchResponse …) are only named in the description. I'll look at letting the per-option types also key on a header, so Milvus and similar components can list the fully qualified class name for each action. On Sat, Oct 24, 2026 at 6:21 PM Federico Mariani < [email protected]> wrote: > Hi Claus, > > That's really nice, what if it is a java object? would it be worth to have > the full qualified name? IIRC components like milvus interact with Milvus > specific objects both as input to the component and output. > > Il giorno sab 24 ott 2026 alle ore 15:50 Claus Ibsen < > [email protected]> > ha scritto: > > > Hi > > > > I am working my way from A..Z and have soon all the components as a bunch > > of PRs. > > After that its the EIPs and then we have most of it. > > > > On top of that the agents help find many small bugs so expected 200+ > being > > reported as well. > > > > > > > > On Thu, Oct 22, 2026 at 9:59 AM Claus Ibsen <[email protected]> > wrote: > > > > > Hi > > > > > > For Camel 4.24 we are working on the question that tooling, AI and > people > > > ask all the time when writing the next step of a route: what is the > body > > > here? > > > A String, a byte[], a stream, a Map, a GenericFile? (CAMEL-24844) > > > > > > It grew out of the local model benchmark, where some of it is already > > part > > > of the runs: > > > > > > https://camel.apache.org/blog/2026/10/camel-local-model-benchmark-round-4/ > > > > > > At runtime this is already in place: an error about the body says what > > the > > > body is and which step made it so (CAMEL-25749), and the message > history > > > records the body type at each step (CAMEL-25750), shown by > > > "camel cmd route-structure", the dev console and the MCP tools. > > > > > > Now we are adding the static side (CAMEL-24961, first asked for in > > > CAMEL-330 > > > back in 2008): a new @BodyTypes annotation declares the body each > > > component, > > > data format and language takes and gives. It goes into the catalog, so > > the > > > docs, "camel catalog doc", the MCP tools and the YAML validator know it > > > too. > > > > > > This comes as a series of PRs, group by group across the components. > The > > > first > > > ones are open: #28241, #28242, #28246, #28247, #28250 and #28251. > > > > > > So expect many more PRs on the way to cover all of the components, and > > > what else. > > > > > > > > > > > > -- > > > Claus Ibsen > > > > > > > > > -- > > Claus Ibsen > > > -- Claus Ibsen
