[
https://issues.apache.org/jira/browse/CAMEL-25086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Federico Mariani resolved CAMEL-25086.
--------------------------------------
Resolution: Fixed
> camel-platform-http-starter: fails to start outside a servlet web application
> (ServerProperties/WebMvcProperties)
> -----------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25086
> URL: https://issues.apache.org/jira/browse/CAMEL-25086
> Project: Camel
> Issue Type: Bug
> Components: camel-platform-http, camel-spring-boot
> Affects Versions: 4.22.0, 4.22.1
> Reporter: Henrik
> Priority: Major
> Fix For: 4.22.2, 4.23.0
>
>
> h3. Summary
> Since 4.22.0 an application context that is not a servlet web application
> fails to start when {{camel-platform-http-starter}} is on the classpath:
> {noformat}
> Error creating bean with name 'platform-http-engine' ... Unsatisfied
> dependency expressed through method
> 'springBootPlatformHttpEngine' parameter 1: No qualifying bean of type
> 'org.springframework.boot.web.server.autoconfigure.ServerProperties' available
> {noformat}
> and, from {{SpringBootPlatformWebMvcConfiguration}}, the same for
> {{org.springframework.boot.webmvc.autoconfigure.WebMvcProperties}}.
> The common case is {{@SpringBootTest(webEnvironment = WebEnvironment.NONE)}}
> on an application with platform-http or Rest DSL routes, which worked on
> 4.21.0.
> h3. Cause
> "camel-platform-http-starter: align auto-configuration with Spring Boot 4
> idioms" (595c737) made the engine inject {{ServerProperties}} instead of
> reading {{server.port}}, and stopped enabling {{WebMvcProperties}} on the
> grounds that the owning auto-configuration does. Spring Boot only registers
> both beans in a servlet web application, so neither exists in a non-web
> context.
> {{@ConditionalOnWebApplication}} is not a fix: without an engine bean
> {{PlatformHttpComponent.getOrCreateEngine}} fails to resolve one, so the
> routes fail to start instead.
> h3. Proposed fix
> Inject both as {{ObjectProvider}}. The engine port uses {{ServerProperties}}
> when present, otherwise the {{server.port}} property, otherwise 8080 (the
> 4.21 behaviour). A missing {{WebMvcProperties}} means no async request
> timeout was configured.
> h3. Found in
> On the 4.21.0 -> 4.22.1 upgrade: every {{WebEnvironment.NONE}} test context
> failed to start.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)