Hi Okay so if you use as a workaround (its due to the model being special - and it may even cause XML DSL to be wrong as well)
@XmlElementWrapper(name = "allowableValues") @XmlElement(name = "value") private List<String> allowableValues; value: - available - pending - sold On Thu, Dec 29, 2022 at 8:11 PM Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Yeah it smells like a yaml-dsl bug, can you create a JIRA ticket > > On Thu, Dec 29, 2022 at 10:24 AM Mikael Koskinen <mijap...@gmail.com> > wrote: > >> Hey, >> >> Just a quick update: Here's a minimal gist which shows the issue: >> >> camel run >> https://gist.github.com/mikoskinen/dccfffd7b6fa6d95f5a0bce66e491765 >> >> Hope this helps. >> >> Best regards, >> Mikael >> >> to 29. jouluk. 2022 klo 11.08 Mikael Koskinen (mijap...@gmail.com) >> kirjoitti: >> > >> > Hi, >> > >> > I'm testing the Camel JBang 3.20 OpenAPI to REST generator and >> > encountering some issues with enums when trying to run the generated >> > file. The schema in the error message looks peculiar when trying to >> > run the XML DSL as it points to spring but I'm not sure if it should >> > look like that. >> > >> > Error with XML Rest DSL: >> > org.apache.camel.RuntimeCamelException: >> > org.apache.camel.xml.io.XmlPullParserException: Unexpected element >> > '{http://camel.apache.org/schema/spring}allowableValues' >> > >> > Error with YAML Rest DSL: >> > Unsupported field: allowableValues >> > in file:myroutes.yaml, line 124, column 11: >> > value: >> > >> > More information follows: >> > >> > I'm using the PetStore OpenAPI 3 spec: >> > >> https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml >> > >> > I'm generating the REST DSL using: >> > >> > camel generate rest -i openapi.yaml -o myroutes.yaml >> > >> > The generation goes through without errors. But Camel isn't able to >> > parse the generated file when trying to run the routes using camel run >> > myroutes.yaml: >> > >> > --- >> > Unsupported field: allowableValues >> > in file:myroutes.yaml, line 124, column 11: >> > value: >> > ^ >> > >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.handleUnknownProperty(YamlDeserializerBase.java:132) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.setProperties(YamlDeserializerBase.java:126) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerBase.construct(YamlDeserializerBase.java:65) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializationContext$1.construct(YamlDeserializationContext.java:171) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asType(YamlDeserializerSupport.java:344) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asCollection(YamlDeserializerSupport.java:322) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asFlatCollection(YamlDeserializerSupport.java:298) >> > at >> org.apache.camel.dsl.yaml.common.YamlDeserializerSupport.asFlatList(YamlDeserializerSupport.java:277) >> > at >> org.apache.camel.dsl.yaml.deserializers.ModelDeserializers$GetDefinitionDeserializer.setProperty(ModelDeserializers.java:5563) >> > --- >> > >> > The generated file contains this which based on the error is failing: >> > >> > get: >> > - id: "findPetsByStatus" >> > path: "/pet/findByStatus" >> > description: "Multiple status values can be provided with comma >> > separated strings" >> > produces: "application/xml,application/json" >> > param: >> > - dataType: "string" >> > defaultValue: "available" >> > description: "Status values that need to be considered for >> filter" >> > name: "status" >> > required: false >> > type: "query" >> > allowableValues: >> > value: >> > - "available" >> > - "pending" >> > - "sold" >> > to: "direct:findPetsByStatus" >> > >> > The original OpenAPI spec has this: >> > >> > /pet/findByStatus: >> > get: >> > tags: >> > - pet >> > summary: Finds Pets by status >> > description: Multiple status values can be provided with comma >> > separated strings >> > operationId: findPetsByStatus >> > parameters: >> > - name: status >> > in: query >> > description: Status values that need to be considered for >> filter >> > required: false >> > explode: true >> > schema: >> > type: string >> > enum: >> > - available >> > - pending >> > - sold >> > default: available >> > >> > I also tried generating XML DSL and it gives the following error when >> running: >> > >> > org.apache.camel.RuntimeCamelException: >> > org.apache.camel.xml.io.XmlPullParserException: Unexpected element >> > '{http://camel.apache.org/schema/spring}allowableValues' >> > >> > I tried to find the relevant parts from the Apache Camel's source code >> > and AFAIK it tries to handle allowableValues. The schema in the XML >> > error looks strange though with a reference to spring. Should that be >> > rest instead? >> > >> > Everything works OK with a simpler schema >> > ( >> https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml >> ) >> > >> > Is this a known issue or is there some setting I could change to make >> > things work? Thanks in advance! >> > >> > Best regards, >> > Mikael >> > > > -- > Claus Ibsen > ----------------- > @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 > -- Claus Ibsen ----------------- @davsclaus Camel in Action 2: https://www.manning.com/ibsen2