@@ -344,29 +344,24 @@ class HoconBeanDefinitionReader(registry: BeanDefinitionRegistry)
344
344
}
345
345
}
346
346
347
- private def readConditionals (list : ConfigList , config : ConfigObject ): ConfigObject = {
348
- list.asScala.foldLeft( config)((conf, conditionalConf) => {
349
- val props = getProps(conditionalConf. asInstanceOf [ ConfigObject ])
350
- val condition = props.get( " condition " )
351
- val newConfig = props(" beans" ).asInstanceOf [ ConfigObject ].get( " beans " )
352
-
353
- if (condition.map(_.unwrapped().asInstanceOf [Boolean ]).exists(identity)) {
354
- newConfig.withFallback(conf). asInstanceOf [ ConfigObject ]
347
+ private def readConditionals (config : Config ): Config = {
348
+ if ( ! config.hasPath( " conditionals " )) config
349
+ else config.getList( " conditionals " ).asScala.foldLeft(config)((currentConfig, conditionalObject) => {
350
+ val props = getProps(conditionalObject.as[ ConfigObject ] )
351
+ val newConfig = readConditionals( props(" beans" ).as[ Config ] )
352
+
353
+ if (props.get( " condition" ) .map(_.unwrapped().asInstanceOf [Boolean ]).exists(identity)) {
354
+ newConfig.withFallback(currentConfig)
355
355
} else {
356
- conf
356
+ currentConfig
357
357
}
358
358
})
359
359
}
360
360
361
361
def loadBeanDefinitions (config : Config ): Int = {
362
- var beans = if (config.hasPath(" beans" )) config.getObject(" beans" ) else ConfigFactory .empty.root
363
-
364
- if (config.hasPath(" conditionals" )) {
365
- val conditionals : ConfigList = config.getList(" conditionals" )
366
- beans = readConditionals(conditionals, beans)
367
- }
368
-
369
- val aliases = if (config.hasPath(" aliases" )) config.getObject(" aliases" ) else ConfigFactory .empty.root
362
+ val configWithConditionals = readConditionals(config)
363
+ val beans = if (configWithConditionals.hasPath(" beans" )) configWithConditionals.getObject(" beans" ) else ConfigFactory .empty.root
364
+ val aliases = if (configWithConditionals.hasPath(" aliases" )) configWithConditionals.getObject(" aliases" ) else ConfigFactory .empty.root
370
365
val result = readBeans(beans)
371
366
readAliases(aliases)
372
367
result
0 commit comments