Merge pull request #5498 from eddumelendez/gh-5483
* pr/5498: Polish contribution Add useAlwaysMessageFormat configuration key
This commit is contained in:
		
						commit
						1b8f44ae2a
					
				| 
						 | 
				
			
			@ -80,6 +80,12 @@ public class MessageSourceAutoConfiguration {
 | 
			
		|||
	 */
 | 
			
		||||
	private boolean fallbackToSystemLocale = true;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Set whether to always apply the MessageFormat rules, parsing even messages without
 | 
			
		||||
	 * arguments.
 | 
			
		||||
	 */
 | 
			
		||||
	private boolean alwaysUseMessageFormat = false;
 | 
			
		||||
 | 
			
		||||
	@Bean
 | 
			
		||||
	public MessageSource messageSource() {
 | 
			
		||||
		ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +98,7 @@ public class MessageSourceAutoConfiguration {
 | 
			
		|||
		}
 | 
			
		||||
		messageSource.setFallbackToSystemLocale(this.fallbackToSystemLocale);
 | 
			
		||||
		messageSource.setCacheSeconds(this.cacheSeconds);
 | 
			
		||||
		messageSource.setAlwaysUseMessageFormat(this.alwaysUseMessageFormat);
 | 
			
		||||
		return messageSource;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -127,6 +134,14 @@ public class MessageSourceAutoConfiguration {
 | 
			
		|||
		this.fallbackToSystemLocale = fallbackToSystemLocale;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public boolean isAlwaysUseMessageFormat() {
 | 
			
		||||
		return this.alwaysUseMessageFormat;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat) {
 | 
			
		||||
		this.alwaysUseMessageFormat = alwaysUseMessageFormat;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected static class ResourceBundleCondition extends SpringBootCondition {
 | 
			
		||||
 | 
			
		||||
		private static ConcurrentReferenceHashMap<String, ConditionOutcome> cache = new ConcurrentReferenceHashMap<String, ConditionOutcome>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -116,6 +116,21 @@ public class MessageSourceAutoConfigurationTests {
 | 
			
		|||
				.isFallbackToSystemLocale()).isFalse();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void testFormatMessageDefault() throws Exception {
 | 
			
		||||
		load("spring.messages.basename:test/messages");
 | 
			
		||||
		assertThat(this.context.getBean(MessageSourceAutoConfiguration.class)
 | 
			
		||||
				.isAlwaysUseMessageFormat()).isFalse();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void testFormatMessageOn() throws Exception {
 | 
			
		||||
		load("spring.messages.basename:test/messages",
 | 
			
		||||
				"spring.messages.always-use-message-format:true");
 | 
			
		||||
		assertThat(this.context.getBean(MessageSourceAutoConfiguration.class)
 | 
			
		||||
				.isAlwaysUseMessageFormat()).isTrue();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void existingMessageSourceIsPreferred() {
 | 
			
		||||
		this.context = new AnnotationConfigApplicationContext();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,6 +109,7 @@ content into your application; rather pick only the properties that you need.
 | 
			
		|||
	spring.mandatory-file-encoding= # Expected character encoding the application must use.
 | 
			
		||||
 | 
			
		||||
	# INTERNATIONALIZATION ({sc-spring-boot-autoconfigure}/MessageSourceAutoConfiguration.{sc-ext}[MessageSourceAutoConfiguration])
 | 
			
		||||
    spring.messages.always-use-message-format=false # Set whether to always apply the MessageFormat rules, parsing even messages without arguments.
 | 
			
		||||
	spring.messages.basename=messages # Comma-separated list of basenames, each following the ResourceBundle convention.
 | 
			
		||||
	spring.messages.cache-seconds=-1 # Loaded resource bundle files cache expiration, in seconds. When set to -1, bundles are cached forever.
 | 
			
		||||
	spring.messages.encoding=UTF-8 # Message bundles encoding.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue