Not sure what's changed. But if you use the classpath: scheme to resolve an OpenAPI spec document, it seems to no longer work in native mode. I disabled the problem tests for now (testInvokeClasspathApiEndpoint & testInvokeApiEndpointWithRequestValidationEnabled).
2024-04-03 10:41:34,129 WARN [io.swa.v3.par.OpenAPIV3Parser] (executor-thread-1) Exception while reading:: io.swagger.v3.parser.exception.ReadContentException: Unable to read location `resource:/openapi.json`
at io.swagger.v3.parser.OpenAPIV3Parser.readContentFromLocation(OpenAPIV3Parser.java:310)
at io.swagger.v3.parser.OpenAPIV3Parser.readLocation(OpenAPIV3Parser.java:95)
at org.apache.camel.component.rest.openapi.RestOpenApiEndpoint.loadSpecificationFrom(RestOpenApiEndpoint.java:890)
at org.apache.camel.component.rest.openapi.RestOpenApiEndpoint.createProducer(RestOpenApiEndpoint.java:305)
at org.apache.camel.support.DefaultEndpoint.createAsyncProducer(DefaultEndpoint.java:199)
at org.apache.camel.support.cache.ServicePool$SinglePool.acquire(ServicePool.java:251)
at org.apache.camel.support.cache.ServicePool$SinglePool.acquire(ServicePool.java:230)
at org.apache.camel.support.cache.ServicePool.acquire(ServicePool.java:122)
at org.apache.camel.support.cache.ProducerServicePool.acquire(ProducerServicePool.java:28)
at org.apache.camel.support.cache.DefaultProducerCache.acquireProducer(DefaultProducerCache.java:134)
at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:246)
at org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:205)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.handleFirst(RedeliveryErrorHandler.java:462)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:438)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:163)
at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:355)
at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:331)
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:96)
at org.apache.camel.impl.engine.SharedCamelInternalProcessor.processNonTransacted(SharedCamelInternalProcessor.java:199)
at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:173)
at org.apache.camel.impl.engine.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:109)
at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:82)
at org.apache.camel.impl.engine.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:106)
at org.apache.camel.support.cache.DefaultProducerCache.send(DefaultProducerCache.java:178)
at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBodyAndHeader(DefaultProducerTemplate.java:429)
at org.apache.camel.quarkus.component.rest.openapi.it.RestOpenapiResource.invokeApiOperation(RestOpenapiResource.java:106)
at org.apache.camel.quarkus.component.rest.openapi.it.RestOpenapiResource.invokeListFruitsOperationClasspath(RestOpenapiResource.java:75)
at org.apache.camel.quarkus.component.rest.openapi.it.RestOpenapiResource_ClientProxy.invokeListFruitsOperationClasspath(Unknown Source)
Caused by: java.lang.IllegalArgumentException: The given OpenApi specification cannot be loaded from: classpath:openapi.json
at org.apache.camel.component.rest.openapi.RestOpenApiEndpoint.loadSpecificationFrom(RestOpenApiEndpoint.java:905)
at org.apache.camel.component.rest.openapi.RestOpenApiEndpoint.createProducer(RestOpenApiEndpoint.java:305)
at org.apache.camel.support.DefaultEndpoint.createAsyncProducer(DefaultEndpoint.java:199)
at org.apache.camel.support.cache.ServicePool$SinglePool.acquire(ServicePool.java:251)
at org.apache.camel.support.cache.ServicePool$SinglePool.acquire(ServicePool.java:230)
at org.apache.camel.support.cache.ServicePool.acquire(ServicePool.java:122)
at org.apache.camel.support.cache.ProducerServicePool.acquire(ProducerServicePool.java:28)
at org.apache.camel.support.cache.DefaultProducerCache.acquireProducer(DefaultProducerCache.java:134)
... 56 more
Bug description
Not sure what's changed. But if you use the
classpath:
scheme to resolve an OpenAPI spec document, it seems to no longer work in native mode. I disabled the problem tests for now (testInvokeClasspathApiEndpoint
&testInvokeApiEndpointWithRequestValidationEnabled
).