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.