From 76b15c4446eb1d1d02b68a09b0ec0ea7de5db2a8 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 23 Jan 2014 22:01:46 +0000 Subject: [PATCH] Add spring.messages.encoding (default utf-8) Fixes gh-260 --- .../MessageSourceAutoConfiguration.java | 2 ++ .../MessageSourceAutoConfigurationTests.java | 22 +++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfiguration.java index 17a7270629..ba6de3589f 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfiguration.java @@ -49,6 +49,8 @@ public class MessageSourceAutoConfiguration implements EnvironmentAware { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); String basename = this.environment.getProperty("basename", "messages"); messageSource.setBasename(basename); + String encoding = this.environment.getProperty("encoding", "utf-8"); + messageSource.setDefaultEncoding(encoding); return messageSource; } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationTests.java index 149d887ea6..bfce17b177 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/MessageSourceAutoConfigurationTests.java @@ -16,13 +16,11 @@ package org.springframework.boot.autoconfigure; -import java.util.HashMap; import java.util.Locale; -import java.util.Map; import org.junit.Test; +import org.springframework.boot.test.EnvironmentTestUtils; import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.core.env.MapPropertySource; import static org.junit.Assert.assertEquals; @@ -50,13 +48,23 @@ public class MessageSourceAutoConfigurationTests { this.context = new AnnotationConfigApplicationContext(); this.context.register(MessageSourceAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); - Map map = new HashMap(); - map.put("spring.messages.basename", "test/messages"); - this.context.getEnvironment().getPropertySources() - .addFirst(new MapPropertySource("test", map)); + EnvironmentTestUtils.addEnvironment(this.context, + "spring.messages.basename:test/messages"); this.context.refresh(); assertEquals("bar", this.context.getMessage("foo", null, "Foo message", Locale.UK)); } + @Test + public void testBadEncoding() throws Exception { + this.context = new AnnotationConfigApplicationContext(); + this.context.register(MessageSourceAutoConfiguration.class, + PropertyPlaceholderAutoConfiguration.class); + EnvironmentTestUtils.addEnvironment(this.context, + "spring.messages.encoding:rubbish"); + this.context.refresh(); + // Bad encoding just means the messages are ignored + assertEquals("blah", this.context.getMessage("foo", null, "blah", Locale.UK)); + } + }