Hi Claus, i did a lot of investigations but i did not find the cause.
I have forked the example repository and added the api specification https://github.com/jirmed/camel-spring-boot-examples/tree/open-api-coorder/openapi-contract-first I have tested in the debugger and the class Coorder is binded correctly Then i create another project from scratch but copying as much as possible from the examples https://github.com/jirmed/camel-spring-boot-examples/tree/open-api-coorder/openapi-contract-first I think it is almost identical to the one in the examples repository except for the parent pom and package names. But if I test it in the original route direct:updatePet the JSON is properly binded to Pet class while in the new direct:putCoorder route the JSON is binded as java.util.LinkedHashMap. I am completely out of ideas what makes the difference Regards Jiri ______________________________________________________________ > Od: "Claus Ibsen" <claus.ib...@gmail.com> > Komu: users@camel.apache.org > Datum: 19.09.2024 17:19 > Předmět: Re: [QUESTION] Open API Rest DSL - bindingPackageScan > >Hi > >Without looking into this, but you could have both projects and then >compare the generated classes if there is some difference. The package >scanner is there to detect clases by annotations / name etc. > > >On Thu, Sep 19, 2024 at 5:02 PM <med...@volny.cz> wrote: > >> Hello community, >> >> i try to use OpenAPI wing bindingPackageScan to map the request to a POJO >> >> my route definition looks like following: >> >> restConfiguration() >> .bindingMode(RestBindingMode.json) >> .bindingPackageScan("cz.bvv.integrationservices.model"); >> >> rest() >> .openApi() >> .specification("/openapi/gop/sender/camelGOP-openapi-v1.json") >> .missingOperation("ignore"); >> >> except for the names it is identical with the example on >> https://github.com/apache/camel-spring-boot-examples/blob/main/openapi-contract-first/src/main/java/sample/petstore/PetStoreRoute.java >> >> the definition part in my OpenAPI looks like: >> >> "/coorder": { >> "put": { >> "tags": [ >> "coorder" >> ], >> "summary": "Create or modify Coorder", >> "operationId": "putCoorder", >> "requestBody": { >> "description": "Coorder list", >> "content": { >> "application/json": { >> "schema": { >> "$ref": "#/components/schemas/Coorder" >> } >> } >> }, >> "required": true >> } >> ] >> } >> } >> >> >> This is the generator definition in pom.xml >> >> <plugin> >> <groupId>io.swagger.codegen.v3</groupId> >> <artifactId>swagger-codegen-maven-plugin</artifactId> >> <version>3.0.52</version> >> <executions> >> <execution> >> <goals> >> <goal>generate</goal> >> </goals> >> <configuration> >> <!-- we only want to generate the model >> classes for spring boot --> >> <language>spring</language> >> <library>spring-boot3</library> >> >> <inputSpec>${project.basedir}/src/main/resources/openapi/gop/sender/camelGOP-openapi-v1.json</inputSpec> >> >> <modelPackage>cz.bvv.integrationservices.model</modelPackage> >> <generateApis>false</generateApis> >> >> <generateApiDocumentation>false</generateApiDocumentation> >> >> <generateModelDocumentation>false</generateModelDocumentation> >> <generateApiTests>false</generateApiTests> >> <generateModelTests>false</generateModelTests> >> >> <generateSupportingFiles>false</generateSupportingFiles> >> <generateModels>true</generateModels> >> </configuration> >> </execution> >> </executions> >> </plugin> >> >> it is also (except for the filename and package) copied from the example. >> >> But if i debug any inbound message it gets mapped to >> java.util.LinkedHashMap instead of my >> cz.bvv.integrationservices.model.Coorder class. >> >> I tried to build and debug the example project but it maps the request >> JSON correctly to Pet class. >> >> Trying both on version 4.8.0 >> >> Can anyone suggest what can be the problem? >> >> Regards >> >> Jiri >> > > >-- >Claus Ibsen >----------------- >@davsclaus >Camel in Action 2: https://www.manning.com/ibsen2 > >