Skip to content

Commit

Permalink
Merge branch '3.1.x' into 3.2.x
Browse files Browse the repository at this point in the history
Closes gh-39621
  • Loading branch information
mhalbritter committed Feb 19, 2024
2 parents bb7706f + ddd3e37 commit 68637fa
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.io.IOException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;

import org.apache.commons.logging.Log;

Expand Down Expand Up @@ -95,9 +96,11 @@ private Banner getTextBanner(Environment environment) {

private String createStringFromBanner(Banner banner, Environment environment, Class<?> mainApplicationClass)
throws UnsupportedEncodingException {
String charset = environment.getProperty("spring.banner.charset", StandardCharsets.UTF_8.name());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
banner.printBanner(environment, mainApplicationClass, new PrintStream(baos));
String charset = environment.getProperty("spring.banner.charset", "UTF-8");
try (PrintStream printStream = new PrintStream(baos, false, charset)) {
banner.printBanner(environment, mainApplicationClass, printStream);
}
return baos.toString(charset);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,19 @@

package org.springframework.boot;

import org.apache.commons.logging.Log;
import org.junit.jupiter.api.Test;

import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.mock.env.MockEnvironment;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.BDDMockito.then;
import static org.mockito.Mockito.mock;

/**
* Tests for {@link SpringApplicationBannerPrinter}.
Expand All @@ -38,4 +45,15 @@ void shouldRegisterRuntimeHints() {
assertThat(RuntimeHintsPredicates.resource().forResource("banner.txt")).accepts(runtimeHints);
}

@Test
void shouldUseUtf8() {
ResourceLoader resourceLoader = new GenericApplicationContext();
Resource resource = resourceLoader.getResource("classpath:/banner-utf8.txt");
SpringApplicationBannerPrinter printer = new SpringApplicationBannerPrinter(resourceLoader,
new ResourceBanner(resource));
Log log = mock(Log.class);
printer.print(new MockEnvironment(), SpringApplicationBannerPrinterTests.class, log);
then(log).should().info("\uD83D\uDE0D Spring Boot! \uD83D\uDE0D\n\n");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
😍 Spring Boot! 😍

0 comments on commit 68637fa

Please sign in to comment.