Consistent use of Charset.forName over JDK 7 StandardCharsets in 4.x line
(cherry picked from commit 2a82b8f)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,7 +21,6 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -371,6 +370,7 @@ public class MvcNamespaceTests {
|
||||
request.setMethod("GET");
|
||||
|
||||
HandlerExecutionChain chain = mapping.getHandler(request);
|
||||
assertNotNull(chain);
|
||||
assertTrue(chain.getHandler() instanceof ResourceHttpRequestHandler);
|
||||
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
@@ -813,7 +813,7 @@ public class MvcNamespaceTests {
|
||||
assertNotNull(scriptTemplateConfigurer);
|
||||
assertEquals("render", scriptTemplateConfigurer.getRenderFunction());
|
||||
assertEquals(MediaType.TEXT_PLAIN_VALUE, scriptTemplateConfigurer.getContentType());
|
||||
assertEquals(StandardCharsets.ISO_8859_1, scriptTemplateConfigurer.getCharset());
|
||||
assertEquals("ISO-8859-1", scriptTemplateConfigurer.getCharset().name());
|
||||
assertEquals("classpath:", scriptTemplateConfigurer.getResourceLoaderPath());
|
||||
assertFalse(scriptTemplateConfigurer.isSharedEngine());
|
||||
String[] scripts = { "org/springframework/web/servlet/view/script/nashorn/render.js" };
|
||||
@@ -945,18 +945,21 @@ public class MvcNamespaceTests {
|
||||
public @interface IsoDate {
|
||||
}
|
||||
|
||||
|
||||
@NumberFormat(style = NumberFormat.Style.PERCENT)
|
||||
@Target({ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface PercentNumber {
|
||||
}
|
||||
|
||||
|
||||
@Validated(MyGroup.class)
|
||||
@Target({ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface MyValid {
|
||||
}
|
||||
|
||||
|
||||
@Controller
|
||||
public static class TestController {
|
||||
|
||||
@@ -967,13 +970,16 @@ public class MvcNamespaceTests {
|
||||
private boolean recordedValidationError;
|
||||
|
||||
@RequestMapping
|
||||
public void testBind(@RequestParam @IsoDate Date date, @RequestParam(required = false) @PercentNumber Double percent, @MyValid TestBean bean, BindingResult result) {
|
||||
public void testBind(@RequestParam @IsoDate Date date,
|
||||
@RequestParam(required = false) @PercentNumber Double percent,
|
||||
@MyValid TestBean bean, BindingResult result) {
|
||||
this.date = date;
|
||||
this.percent = percent;
|
||||
this.recordedValidationError = (result.getErrorCount() == 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class TestValidator implements Validator {
|
||||
|
||||
boolean validatorInvoked;
|
||||
@@ -989,10 +995,12 @@ public class MvcNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface MyGroup {
|
||||
}
|
||||
|
||||
|
||||
private static class TestBean {
|
||||
|
||||
@NotNull(groups = MyGroup.class)
|
||||
@@ -1009,6 +1017,7 @@ public class MvcNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class TestMockServletContext extends MockServletContext {
|
||||
|
||||
@Override
|
||||
@@ -1022,12 +1031,15 @@ public class MvcNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class TestCallableProcessingInterceptor extends CallableProcessingInterceptorAdapter {
|
||||
}
|
||||
|
||||
|
||||
public static class TestDeferredResultProcessingInterceptor extends DeferredResultProcessingInterceptorAdapter {
|
||||
}
|
||||
|
||||
|
||||
public static class TestPathMatcher implements PathMatcher {
|
||||
|
||||
@Override
|
||||
@@ -1066,9 +1078,11 @@ public class MvcNamespaceTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class TestPathHelper extends UrlPathHelper {
|
||||
}
|
||||
|
||||
|
||||
public static class TestCacheManager implements CacheManager {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.springframework.web.servlet.view.script;
|
||||
|
||||
import java.net.URLClassLoader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -47,7 +47,6 @@ import org.springframework.web.servlet.DispatcherServlet;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.BDDMockito.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link ScriptTemplateView}.
|
||||
@@ -56,14 +55,15 @@ import static org.mockito.Mockito.mock;
|
||||
*/
|
||||
public class ScriptTemplateViewTests {
|
||||
|
||||
private static final String RESOURCE_LOADER_PATH = "classpath:org/springframework/web/servlet/view/script/";
|
||||
|
||||
|
||||
private ScriptTemplateView view;
|
||||
|
||||
private ScriptTemplateConfigurer configurer;
|
||||
|
||||
private StaticWebApplicationContext wac;
|
||||
|
||||
private static final String RESOURCE_LOADER_PATH = "classpath:org/springframework/web/servlet/view/script/";
|
||||
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
@@ -74,16 +74,16 @@ public class ScriptTemplateViewTests {
|
||||
this.view.setUrl(RESOURCE_LOADER_PATH + "empty.txt");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void missingScriptTemplateConfig() throws Exception {
|
||||
try {
|
||||
this.view.setApplicationContext(new StaticApplicationContext());
|
||||
fail("Should have thrown ApplicationContextException");
|
||||
}
|
||||
catch (ApplicationContextException ex) {
|
||||
assertTrue(ex.getMessage().contains("ScriptTemplateConfig"));
|
||||
return;
|
||||
}
|
||||
fail();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -93,7 +93,7 @@ public class ScriptTemplateViewTests {
|
||||
this.configurer.setRenderObject("Template");
|
||||
this.configurer.setRenderFunction("render");
|
||||
this.configurer.setContentType(MediaType.TEXT_PLAIN_VALUE);
|
||||
this.configurer.setCharset(StandardCharsets.ISO_8859_1);
|
||||
this.configurer.setCharset(Charset.forName("ISO-8859-1"));
|
||||
this.configurer.setSharedEngine(true);
|
||||
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(this.view);
|
||||
@@ -102,7 +102,7 @@ public class ScriptTemplateViewTests {
|
||||
assertEquals("Template", accessor.getPropertyValue("renderObject"));
|
||||
assertEquals("render", accessor.getPropertyValue("renderFunction"));
|
||||
assertEquals(MediaType.TEXT_PLAIN_VALUE, accessor.getPropertyValue("contentType"));
|
||||
assertEquals(StandardCharsets.ISO_8859_1, accessor.getPropertyValue("charset"));
|
||||
assertEquals(Charset.forName("ISO-8859-1"), accessor.getPropertyValue("charset"));
|
||||
assertEquals(true, accessor.getPropertyValue("sharedEngine"));
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ public class ScriptTemplateViewTests {
|
||||
assertEquals("Template", accessor.getPropertyValue("renderObject"));
|
||||
assertEquals("render", accessor.getPropertyValue("renderFunction"));
|
||||
assertEquals(MediaType.TEXT_HTML_VALUE, accessor.getPropertyValue("contentType"));
|
||||
assertEquals(StandardCharsets.UTF_8, accessor.getPropertyValue("charset"));
|
||||
assertEquals(Charset.forName("UTF-8"), accessor.getPropertyValue("charset"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -135,7 +135,7 @@ public class ScriptTemplateViewTests {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(this.view);
|
||||
assertNull(accessor.getPropertyValue("renderObject"));
|
||||
assertEquals("render", accessor.getPropertyValue("renderFunction"));
|
||||
assertEquals(StandardCharsets.UTF_8, accessor.getPropertyValue("charset"));
|
||||
assertEquals(Charset.forName("UTF-8"), accessor.getPropertyValue("charset"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -147,11 +147,11 @@ public class ScriptTemplateViewTests {
|
||||
this.view.setApplicationContext(this.wac);
|
||||
ExecutorService executor = Executors.newFixedThreadPool(4);
|
||||
List<Future<Boolean>> results = new ArrayList<>();
|
||||
for(int i = 0; i < iterations; i++) {
|
||||
for (int i = 0; i < iterations; i++) {
|
||||
results.add(executor.submit(() -> view.getEngine() != null));
|
||||
}
|
||||
assertEquals(iterations, results.size());
|
||||
for(int i = 0; i < iterations; i++) {
|
||||
for (int i = 0; i < iterations; i++) {
|
||||
assertTrue(results.get(i).get());
|
||||
}
|
||||
executor.shutdown();
|
||||
@@ -165,7 +165,6 @@ public class ScriptTemplateViewTests {
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
assertThat(ex.getMessage(), containsString("instance"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,9 +205,7 @@ public class ScriptTemplateViewTests {
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
assertThat(ex.getMessage(), containsString("sharedEngine"));
|
||||
return;
|
||||
}
|
||||
fail();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -223,6 +220,7 @@ public class ScriptTemplateViewTests {
|
||||
assertThat(Arrays.asList(urlClassLoader.getURLs()), Matchers.hasSize(1));
|
||||
assertThat(Arrays.asList(urlClassLoader.getURLs()).get(0).toString(),
|
||||
Matchers.endsWith("org/springframework/web/servlet/view/script/"));
|
||||
|
||||
this.view.setResourceLoaderPath(RESOURCE_LOADER_PATH + ",classpath:org/springframework/web/servlet/view/");
|
||||
classLoader = this.view.createClassLoader();
|
||||
assertNotNull(classLoader);
|
||||
@@ -248,19 +246,19 @@ public class ScriptTemplateViewTests {
|
||||
|
||||
this.view.render(model, request, response);
|
||||
assertEquals(MediaType.TEXT_HTML_VALUE + ";charset=" +
|
||||
StandardCharsets.UTF_8, response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
Charset.forName("UTF-8"), response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
|
||||
response = new MockHttpServletResponse();
|
||||
this.view.setContentType(MediaType.TEXT_PLAIN_VALUE);
|
||||
this.view.render(model, request, response);
|
||||
assertEquals(MediaType.TEXT_PLAIN_VALUE + ";charset=" +
|
||||
StandardCharsets.UTF_8, response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
Charset.forName("UTF-8"), response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
|
||||
response = new MockHttpServletResponse();
|
||||
this.view.setCharset(StandardCharsets.ISO_8859_1);
|
||||
this.view.setCharset(Charset.forName("ISO-8859-1"));
|
||||
this.view.render(model, request, response);
|
||||
assertEquals(MediaType.TEXT_PLAIN_VALUE + ";charset=" +
|
||||
StandardCharsets.ISO_8859_1, response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
Charset.forName("ISO-8859-1"), response.getHeader(HttpHeaders.CONTENT_TYPE));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user