From d0128071ec89df33c361a6788f7a7213143368ee Mon Sep 17 00:00:00 2001 From: Dmytro Danilenkov Date: Thu, 10 Apr 2025 14:39:54 +0200 Subject: [PATCH] Add missing attributes to ServletRegistration annotation See gh-45007 Signed-off-by: Dmytro Danilenkov --- .../ServletContextInitializerBeans.java | 5 +++ .../boot/web/servlet/ServletRegistration.java | 15 +++++++ .../ServletContextInitializerBeansTests.java | 40 +++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java index 84642aff41c..195a707cd05 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java @@ -65,6 +65,7 @@ import org.springframework.util.StringUtils; * @author Brian Clozel * @author Moritz Halbritter * @author Daeho Kwon + * @author Dmytro Danilenkov * @since 1.4.0 */ public class ServletContextInitializerBeans extends AbstractCollection { @@ -320,6 +321,10 @@ public class ServletContextInitializerBeans extends AbstractCollection { + assertThat(bean.getServletName()).isEqualTo("extended"); + assertThat(bean.getUrlMappings()).containsExactly("/extended/*"); + assertThat(bean.getInitParameters()).containsEntry("hello", "world").containsEntry("flag", "true"); + assertThat(bean.getMultipartConfig()).isNotNull(); + assertThat(bean.getMultipartConfig().getLocation()).isEqualTo("/tmp"); + assertThat(bean.getMultipartConfig().getMaxFileSize()).isEqualTo(1024); + assertThat(bean.getMultipartConfig().getMaxRequestSize()).isEqualTo(4096); + assertThat(bean.getMultipartConfig().getFileSizeThreshold()).isEqualTo(128); + }); + + } + + private void assertThatSingleServletRegistration(ServletContextInitializerBeans initializerBeans, + ThrowingConsumer> code) { + assertThatSingleRegistration(initializerBeans, ServletRegistrationBean.class, code::acceptThrows); + } + private void load(Class... configuration) { this.context = new AnnotationConfigApplicationContext(configuration); } @@ -454,4 +479,19 @@ class ServletContextInitializerBeansTests { } + @Configuration(proxyBeanMethods = false) + static class ServletConfigurationWithExtendedAttributes { + + @Bean + @ServletRegistration(name = "extended", urlMappings = "/extended/*", + initParameters = { @WebInitParam(name = "hello", value = "world"), + @WebInitParam(name = "flag", value = "true") }, + multipartConfig = @MultipartConfig(location = "/tmp", maxFileSize = 1024, maxRequestSize = 4096, + fileSizeThreshold = 128)) + TestServlet testServletWithInitParametersAndMultipart() { + return new TestServlet(); + } + + } + }