Starting with version 6.2, Spring Integration provides a global configuration property spring.integration.endpoints.defaultTimeout: https://docs.spring.io/spring-integration/reference/configuration/global-properties.html.
Looks like we are missing to cover it in the IntegrationProperties.Endpoint and in the IntegrationPropertiesEnvironmentPostProcessor.IntegrationPropertiesPropertySource.
This is an original issue where we have introduced that property, and we even discuss that a Spring Boot improvement: https://github.com/spring-projects/spring-integration/issues/8704
Let me know and I'll be glad to contribute the fix!
Thanks
Comment From: wilkinsona
I wonder if we should consider this to be a bug of omission. It makes it hard (you need to use a bean post-processor) to configure the timeout as Boot's auto-configured IntegrationProperties bean prevents Spring Integration from defining its own that would be populated using META-INF/spring.integration.properties.
Comment From: artembilan
Yes. That's my impression as well, Andy.
Although I think as a quick fix for the current state of things we could just add a missed property handling into Spring Boot to give it a chance to make it into the current release train.
As a proper fix I think we need to let Spring Integration create its own IntegrationProperties bean based on those META-INF/spring.integration.properties and override those based on the auto-configuration.
This way we always will be able to preserve those properties which are new in Spring Integration and not covered by Spring Boot yet, and have an auto-configuration as a primary source for covered properties.
I understand the purpose of the IntegrationPropertiesEnvironmentPostProcessor to have a dedicated PropertySource, but looks like it is not that robust to make things flexible enough.
Comment From: wilkinsona
We discussed this today and agreed to consider it a bug of omission. As part of fixing it, we want to add a test so that Boot's build will fail if a property is added to org.springframework.integration.context.IntegrationProperties and we don't have support for it.