spring-framework
spring-framework copied to clipboard
Make ResourceBundleMessageSource support more file formats [SPR-14419]
Loïc Dreux opened SPR-14419 and commented
ResourceBundleMessageSource could store and load Properties with a custom implementation of the PropertiesPersister like YamlPropertiesPersister.java but the extensions ".properties" and ".xml" are hard coded in Java Source.
A good solution could be to had a property "customExtension" to support other file format like yaml.
Affects: 4.2.6
Bulk closing outdated, unresolved issues. Please, reopen if still relevant.
I would say it's relevant!
I think this is relevant too. All my application is YAML configured (properties, liquibase..) excepted messages. It's really frustrating. Without this support we must use two different markup language to maintain our projects.
Is it possible to reopen an issue?
i think it is relevant too
It's relevant!
any updates on this?
Really waiting for it!!! It's relevant!
At least tell us when will this be resolved.
This issue still relevant
I am here too. Seems relevant to me
Nice issue
I really like this issue! 💕
look forward
I would really appreciate this feature!
@christian-kocke I found a repo with a work around of this issue, hope it helps. https://github.com/akkinoc/yaml-resource-bundle
it is relevant for sure!
yes, it's relevant
I agree, this is a very relevant feature
Yep. Lots of us need this. Anything that's hard-coded is really bad code, so it's high time it was refactored anyways. Externalize it and use polymorphism to support Yaml!
And here I am again too checking for any updates. Still find it relevant
It's super relevant!
Thanks for your input everyone, we will be addressing this feature request in 6.1.
It is relevant for me as well :)
Thanks for your input everyone, we will be addressing this feature request in 6.1.
YES! it took almost 7 years... but we got it 🎉🎉🎉
Thanks for your input everyone, we will be addressing this feature request in 6.1.
YES! it took almost 7 years... but we got it 🎉🎉🎉
From which version of Spring Boot is this feature available ? Any resource available with example of its usage would be nice.
From which version of Spring Boot is this feature available ? Any resource available with example of its usage would be nice.
@Thanthu, this issue is still open, which means that the feature has not been released yet.
Thanks everybody for your patience, this issue should be be fixed by this commit.
I was a bit confused initially by the fact that the description of the changes proposed looked irrelevant to ResourceBundleMessageSource
, but I understood after digging deeper that it was a typo, and that the change was targeting ReloadableResourceBundleMessageSource
which allows to set a custom PropertiesPersister
and indeed had .properties
and .xml
extensions hard coded. The title and description of the issue have been updated accordingly.
In ReloadableResourceBundleMessageSource
, it is now possible to customize the file extensions thanks to a new setFileExtensions
setter, and combined with setPropertiesPersister
, it is possible to implement support for custom file formats.
Since it seems to be a popular use case, I have implemented an example of YAML resource bundle support in https://github.com/sdeleuze/demo-yaml-message-source. The important bits are the YamlPropertiesLoader
leveraging org.springframework.beans.factory.config.YamlMapFactoryBean
and the declaration of a custom MessageSource
bean here:
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setPropertiesPersister(new YamlPropertiesLoader());
messageSource.setFileExtensions(List.of(".yml", ".yaml"));
return messageSource;
}
Spring does not provide such out-of-the box YAML support yet, but hopefully that can serve as an example for the community for how to leverage this feature, and will allow the Spring team to observe how the community leverages those capabilities, which implementations get traction, etc.
this issue has been closed. does that mean Spring framework out of the box finally support yaml format for message source?
if out the box is supported, does spring boot able to autoconfigure to support both yaml and properties, instead of developer having to write codes to configure them.