This commit is contained in:
Phillip Webb 2015-07-14 22:17:52 -07:00
parent 68d875bdc6
commit f0f5f78e25
17 changed files with 69 additions and 58 deletions

View File

@ -84,7 +84,9 @@ public class MessageSourceAutoConfiguration {
messageSource
.setBasenames(commaDelimitedListToStringArray(trimAllWhitespace(this.basename)));
}
messageSource.setDefaultEncoding(this.encoding.name());
if (this.encoding != null) {
messageSource.setDefaultEncoding(this.encoding.name());
}
messageSource.setCacheSeconds(this.cacheSeconds);
return messageSource;
}

View File

@ -33,7 +33,6 @@ import org.springframework.jndi.JndiLocatorDelegate;
*
* @author Eddú Meléndez
* @author Stephane Nicoll
* @since 1.3.0
*/
@Configuration
@ConditionalOnClass(Session.class)

View File

@ -18,6 +18,7 @@ package org.springframework.boot.autoconfigure.mail;
import java.util.Map;
import java.util.Properties;
import javax.activation.MimeType;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
@ -78,7 +79,9 @@ public class MailSenderAutoConfiguration {
}
sender.setUsername(this.properties.getUsername());
sender.setPassword(this.properties.getPassword());
sender.setDefaultEncoding(this.properties.getDefaultEncoding().name());
if (this.properties.getDefaultEncoding() != null) {
sender.setDefaultEncoding(this.properties.getDefaultEncoding().name());
}
if (!this.properties.getProperties().isEmpty()) {
sender.setJavaMailProperties(asProperties(this.properties.getProperties()));
}
@ -90,10 +93,9 @@ public class MailSenderAutoConfiguration {
return properties;
}
/**
* Condition to trigger the creation of a {@link JavaMailSenderImpl}. This kicks
* in if either the host or jndi name property is set.
* Condition to trigger the creation of a {@link JavaMailSenderImpl}. This kicks in if
* either the host or jndi name property is set.
*/
static class MailSenderCondition extends AnyNestedCondition {

View File

@ -146,7 +146,9 @@ public abstract class AbstractTemplateViewResolverProperties extends
resolver.setPrefix(getPrefix());
resolver.setSuffix(getSuffix());
resolver.setCache(isCache());
resolver.setContentType(getContentType().toString());
if (getContentType() != null) {
resolver.setContentType(getContentType().toString());
}
resolver.setViewNames(getViewNames());
resolver.setExposeRequestAttributes(isExposeRequestAttributes());
resolver.setAllowRequestOverride(isAllowRequestOverride());

View File

@ -17,8 +17,6 @@
package org.springframework.boot.autoconfigure.template;
import java.nio.charset.Charset;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@ -103,8 +101,13 @@ public abstract class AbstractViewResolverProperties {
}
public MimeType getContentType() {
return (this.contentType.getCharSet() != null ? this.contentType :
new MimeType(this.contentType, cloneParametersWithCustomCharset(this.contentType, this.charset)));
if (this.contentType.getCharSet() == null) {
Map<String, String> parameters = new LinkedHashMap<String, String>();
parameters.put("charset", this.charset.name());
parameters.putAll(this.contentType.getParameters());
return new MimeType(this.contentType, parameters);
}
return this.contentType;
}
public void setContentType(MimeType contentType) {
@ -123,11 +126,4 @@ public abstract class AbstractViewResolverProperties {
this.charset = charset;
}
private static Map<String,String> cloneParametersWithCustomCharset(MimeType contentType, Charset charset) {
LinkedHashMap<String,String> clone = new LinkedHashMap<String, String>();
clone.put("charset", charset.name());
clone.putAll(contentType.getParameters());
return clone;
}
}

View File

@ -97,7 +97,9 @@ public class ThymeleafAutoConfiguration {
resolver.setPrefix(this.properties.getPrefix());
resolver.setSuffix(this.properties.getSuffix());
resolver.setTemplateMode(this.properties.getMode());
resolver.setCharacterEncoding(this.properties.getEncoding().name());
if (this.properties.getEncoding() != null) {
resolver.setCharacterEncoding(this.properties.getEncoding().name());
}
resolver.setCacheable(this.properties.isCache());
return resolver;
}
@ -212,10 +214,10 @@ public class ThymeleafAutoConfiguration {
if (type.getCharSet() != null) {
return type.toString();
}
LinkedHashMap<String,String> clone = new LinkedHashMap<String, String>();
clone.put("charset", charset);
clone.putAll(type.getParameters());
return new MimeType(type, clone).toString();
LinkedHashMap<String, String> parameters = new LinkedHashMap<String, String>();
parameters.put("charset", charset);
parameters.putAll(type.getParameters());
return new MimeType(type, parameters).toString();
}
}

View File

@ -61,7 +61,7 @@ public class ThymeleafProperties {
/**
* Template encoding.
*/
private Charset encoding = DEFAULT_ENCODING;
private Charset encoding = DEFAULT_ENCODING;
/**
* Content-Type value.

View File

@ -19,7 +19,6 @@ package org.springframework.boot.autoconfigure.template;
import java.nio.charset.Charset;
import org.junit.Test;
import org.springframework.util.MimeTypeUtils;
import static org.hamcrest.MatcherAssert.assertThat;
@ -32,10 +31,10 @@ import static org.hamcrest.Matchers.hasToString;
*/
public class ViewResolverPropertiesTest {
@Test
public void defaultContentType() {
assertThat(new ViewResolverProperties().getContentType(), hasToString("text/html;charset=UTF-8"));
assertThat(new ViewResolverProperties().getContentType(),
hasToString("text/html;charset=UTF-8"));
}
@Test
@ -65,11 +64,12 @@ public class ViewResolverPropertiesTest {
ViewResolverProperties properties = new ViewResolverProperties();
properties.setContentType(MimeTypeUtils.parseMimeType("text/plain;foo=bar"));
properties.setCharset(Charset.forName("UTF-16"));
assertThat(properties.getContentType(), hasToString("text/plain;charset=UTF-16;foo=bar"));
assertThat(properties.getContentType(),
hasToString("text/plain;charset=UTF-16;foo=bar"));
}
private static class ViewResolverProperties extends AbstractViewResolverProperties {
}
}

View File

@ -205,7 +205,8 @@ public class ServerPropertiesTests {
Map<String, String> map = new HashMap<String, String>();
map.put("server.tomcat.uriEncoding", "US-ASCII");
bindProperties(map);
assertEquals(Charset.forName("US-ASCII"), this.properties.getTomcat().getUriEncoding());
assertEquals(Charset.forName("US-ASCII"), this.properties.getTomcat()
.getUriEncoding());
}
@Test

View File

@ -74,8 +74,9 @@ public class MavenSettings {
private final List<Profile> activeProfiles;
/**
* @param settings
* @param decryptedSettings
* Create a new {@link MavenSettings} instance.
* @param settings the source settings
* @param decryptedSettings the decrypted settings
*/
public MavenSettings(Settings settings, SettingsDecryptionResult decryptedSettings) {
this.offline = settings.isOffline();
@ -166,7 +167,8 @@ public class MavenSettings {
org.apache.maven.model.Profile modelProfile = new org.apache.maven.model.Profile();
modelProfile.setId(profile.getId());
if (profile.getActivation() != null) {
modelProfile.setActivation(createModelActivation(profile.getActivation()));
modelProfile
.setActivation(createModelActivation(profile.getActivation()));
}
modelProfiles.add(modelProfile);
}

View File

@ -91,15 +91,16 @@ public class MavenSettingsReader {
return settingsDecrypter;
}
private void setField(Class<?> clazz, String fieldName, Object target, Object value) {
private void setField(Class<?> sourceClass, String fieldName, Object target,
Object value) {
try {
Field field = clazz.getDeclaredField(fieldName);
Field field = sourceClass.getDeclaredField(fieldName);
field.setAccessible(true);
field.set(target, value);
}
catch (Exception e) {
catch (Exception ex) {
throw new IllegalStateException("Failed to set field '" + fieldName
+ "' on '" + target + "'", e);
+ "' on '" + target + "'", ex);
}
}

View File

@ -44,7 +44,6 @@ public final class RepositoryConfigurationFactory {
"spring-snapshot", URI.create("http://repo.spring.io/snapshot"), true);
private RepositoryConfigurationFactory() {
}
/**

View File

@ -27,7 +27,7 @@
<password>somepassword</password>
</proxy>
</proxies>
<profiles>
<profile>
<id>active-by-default</id>
@ -58,4 +58,4 @@
</profile>
</profiles>
</settings>
</settings>

View File

@ -508,6 +508,8 @@ to configure Aether. The following configuration settings are honored by the CLI
Please refer to https://maven.apache.org/settings.html[Maven's settings documentation] for
further information.
[[cli-whats-next]]
== What to read next
There are some {github-code}/spring-boot-cli/samples[sample groovy

View File

@ -26,7 +26,7 @@ import java.util.Locale;
*/
class DescriptionExtractor {
static final String NEW_LINE = System.getProperty("line.separator");
private static final String NEW_LINE = System.getProperty("line.separator");
public String getShortDescription(String description) {
if (description == null) {

View File

@ -27,41 +27,42 @@ import static org.junit.Assert.assertEquals;
*/
public class DescriptionExtractorTests {
private static final String NEW_LINE = System.getProperty("line.separator");
private DescriptionExtractor extractor = new DescriptionExtractor();
@Test
public void extractShortDescription() {
assertEquals("My short description.",
this.extractor.getShortDescription("My short description. More stuff."));
String description = this.extractor.getShortDescription("My short "
+ "description. More stuff.");
assertEquals("My short description.", description);
}
@Test
public void extractShortDescriptionNewLineBeforeDot() {
assertEquals("My short description.",
this.extractor.getShortDescription("My short" + DescriptionExtractor.NEW_LINE +
"description." + DescriptionExtractor.NEW_LINE + "More stuff."));
String description = this.extractor.getShortDescription("My short" + NEW_LINE
+ "description." + NEW_LINE + "More stuff.");
assertEquals("My short description.", description);
}
@Test
public void extractShortDescriptionNewLineBeforeDotWithSpaces() {
assertEquals("My short description.",
this.extractor
.getShortDescription("My short "
+ DescriptionExtractor.NEW_LINE + " description. "
+ DescriptionExtractor.NEW_LINE + "More stuff."));
String description = this.extractor.getShortDescription("My short " + NEW_LINE
+ " description. " + NEW_LINE + "More stuff.");
assertEquals("My short description.", description);
}
@Test
public void extractShortDescriptionNoDot() {
assertEquals("My short description",
this.extractor.getShortDescription("My short description"));
String description = this.extractor.getShortDescription("My short description");
assertEquals("My short description", description);
}
@Test
public void extractShortDescriptionNoDotMultipleLines() {
assertEquals("My short description",
this.extractor.getShortDescription("My short description "
+ DescriptionExtractor.NEW_LINE + " More stuff"));
String description = this.extractor.getShortDescription("My short description "
+ NEW_LINE + " More stuff");
assertEquals("My short description", description);
}
@Test

View File

@ -35,7 +35,8 @@ class ExpressionTree extends ReflectionWrapper {
private final Class<?> methodInvocationTreeType = findClass("com.sun.source.tree.MethodInvocationTree");
private final Method methodInvocationArgumentsMethod = findMethod(this.methodInvocationTreeType, "getArguments");
private final Method methodInvocationArgumentsMethod = findMethod(
this.methodInvocationTreeType, "getArguments");
private final Class<?> newArrayTreeType = findClass("com.sun.source.tree.NewArrayTree");
@ -59,7 +60,8 @@ class ExpressionTree extends ReflectionWrapper {
public Object getFactoryValue() throws Exception {
if (this.methodInvocationTreeType.isAssignableFrom(getInstance().getClass())) {
List<?> arguments = (List<?>) this.methodInvocationArgumentsMethod.invoke(getInstance());
List<?> arguments = (List<?>) this.methodInvocationArgumentsMethod
.invoke(getInstance());
if (arguments.size() == 1) {
return new ExpressionTree(arguments.get(0)).getLiteralValue();
}