0

I am trying to create a SB3 library that exports auto-configurations.

Here is the simplified scenario:

@AutoConfiguration
@ConditionalOnWebApplication
// some other conditions
public class TopLevelAutoConfiguration {}

@Configuration
@ConditionalOnBean(DataSource.class)
public class AdditionalConfiguration {}

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:

com.example.TopLevelAutoConfiguration

Question: How to import AdditionalConfiguration into TopLevelConfiguration, so that @ConditionalOnBean(DataSource.class) is respected?

A simple @Import does not respect the condition put on top of AdditionalConfiguration, and @ImportAutoConfiguration does not seem to have any effect.

Appending AdditionalConfiguration to org.springframework.boot.autoconfigure.AutoConfiguration.imports works, of course, but I would need to duplicate the conditions from TopLevelAutoConfiguration in AdditionalConfiguration in addition to specifying @ConditionalOnBean, which I really don't like.

crizzis
  • 9,978
  • 2
  • 28
  • 47

0 Answers0