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.