diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/build.gradle index 5cb1a660ffd..ba1be823976 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/build.gradle @@ -10,9 +10,7 @@ dependencies { runtimeOnly("jaxen:jaxen") runtimeOnly("wsdl4j:wsdl4j") - runtimeOnly("jakarta.activation:jakarta.activation-api") - runtimeOnly("org.glassfish.jaxb:jaxb-runtime") - + testImplementation(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-test")) testImplementation("org.springframework.ws:spring-ws-test") } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/WebServiceConfig.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/WebServiceConfig.java index bc8c10a625f..6afec44695a 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/WebServiceConfig.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/WebServiceConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 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. @@ -16,22 +16,22 @@ package smoketest.webservices; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.ws.config.annotation.WsConfigurerAdapter; import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition; import org.springframework.xml.xsd.XsdSchema; @Configuration(proxyBeanMethods = false) -public class WebServiceConfig extends WsConfigurerAdapter { +class WebServiceConfig { @Bean(name = "holiday") - public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema countriesSchema) { + DefaultWsdl11Definition defaultWsdl11Definition(@Qualifier("hr") XsdSchema hrSchema) { DefaultWsdl11Definition wsdl = new DefaultWsdl11Definition(); wsdl.setPortTypeName("HumanResource"); wsdl.setLocationUri("/holidayService/"); wsdl.setTargetNamespace("https://company.example.com/hr/definitions"); - wsdl.setSchema(countriesSchema); + wsdl.setSchema(hrSchema); return wsdl; } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/endpoint/HolidayEndpoint.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/endpoint/HolidayEndpoint.java index b7454aa84e8..d6bbb7d1519 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/endpoint/HolidayEndpoint.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/endpoint/HolidayEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2025 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. @@ -16,8 +16,7 @@ package smoketest.webservices.endpoint; -import java.text.SimpleDateFormat; -import java.util.Date; +import java.time.LocalDate; import org.jdom2.Element; import org.jdom2.Namespace; @@ -54,10 +53,9 @@ public class HolidayEndpoint { } @PayloadRoot(namespace = NAMESPACE_URI, localPart = "HolidayRequest") - public void handleHolidayRequest(@RequestPayload Element holidayRequest) throws Exception { - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date startDate = dateFormat.parse(this.startDateExpression.evaluateFirst(holidayRequest).getText()); - Date endDate = dateFormat.parse(this.endDateExpression.evaluateFirst(holidayRequest).getText()); + public void handleHolidayRequest(@RequestPayload Element holidayRequest) { + LocalDate startDate = LocalDate.parse(this.startDateExpression.evaluateFirst(holidayRequest).getText()); + LocalDate endDate = LocalDate.parse(this.endDateExpression.evaluateFirst(holidayRequest).getText()); String name = this.nameExpression.evaluateFirst(holidayRequest); this.humanResourceService.bookHoliday(startDate, endDate, name); } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/HumanResourceService.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/HumanResourceService.java index fb529c26d28..8b5dc756ab5 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/HumanResourceService.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/HumanResourceService.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 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. @@ -16,10 +16,10 @@ package smoketest.webservices.service; -import java.util.Date; +import java.time.LocalDate; public interface HumanResourceService { - void bookHoliday(Date startDate, Date endDate, String name); + void bookHoliday(LocalDate startDate, LocalDate endDate, String name); } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/StubHumanResourceService.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/StubHumanResourceService.java index ee8cc8e3be8..cb3158314fb 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/StubHumanResourceService.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/main/java/smoketest/webservices/service/StubHumanResourceService.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2025 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. @@ -16,7 +16,7 @@ package smoketest.webservices.service; -import java.util.Date; +import java.time.LocalDate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -24,13 +24,13 @@ import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Service; @Service -public class StubHumanResourceService implements HumanResourceService { +class StubHumanResourceService implements HumanResourceService { - private final Log logger = LogFactory.getLog(StubHumanResourceService.class); + private static final Log logger = LogFactory.getLog(StubHumanResourceService.class); @Override - public void bookHoliday(Date startDate, Date endDate, String name) { - this.logger.info("Booking holiday for [" + startDate + " - " + endDate + "] for [" + name + "]"); + public void bookHoliday(LocalDate startDate, LocalDate endDate, String name) { + logger.info("Booking holiday for [" + startDate + " - " + endDate + "] for [" + name + "]"); } } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/SampleWsApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/SampleWsApplicationTests.java index f653974b6f7..a3962d1558e 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/SampleWsApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/SampleWsApplicationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2025 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. @@ -50,11 +50,18 @@ class SampleWsApplicationTests { @Test void testSendingHolidayRequest(CapturedOutput output) { - final String request = "" - + " 2013-10-20" - + " 2013-11-22 " - + " 1 John" - + " Doe "; + String request = """ + + + 2013-10-20 + 2013-11-22 + + + 1 + John + Doe + + """; StreamSource source = new StreamSource(new StringReader(request)); StreamResult result = new StreamResult(System.out); this.webServiceTemplate.sendSourceAndReceiveToResult(source, result); diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/WebServiceServerTestSampleWsApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/WebServiceServerTestSampleWsApplicationTests.java index db18ce0c4e2..34a47d28e0d 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/WebServiceServerTestSampleWsApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webservices/src/test/java/smoketest/webservices/WebServiceServerTestSampleWsApplicationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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,20 +17,15 @@ package smoketest.webservices; import java.io.StringReader; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.time.LocalDate; import javax.xml.transform.stream.StreamSource; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import smoketest.webservices.service.HumanResourceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.webservices.server.WebServiceServerTest; -import org.springframework.boot.test.system.CapturedOutput; -import org.springframework.boot.test.system.OutputCaptureExtension; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.ws.test.server.MockWebServiceClient; import org.springframework.ws.test.server.RequestCreators; @@ -43,9 +38,9 @@ import static org.mockito.BDDMockito.then; * {@link MockWebServiceClient}. * * @author Andy Wilkinson + * @author Stephane Nicoll */ @WebServiceServerTest -@ExtendWith(OutputCaptureExtension.class) class WebServiceServerTestSampleWsApplicationTests { @MockitoBean @@ -55,17 +50,22 @@ class WebServiceServerTestSampleWsApplicationTests { private MockWebServiceClient client; @Test - void testSendingHolidayRequest(CapturedOutput output) throws ParseException { - String request = "" - + " 2013-10-20" - + " 2013-11-22 " - + " 1 John" - + " Doe "; + void testSendingHolidayRequest() { + String request = """ + + + 2013-10-20 + 2013-11-22 + + + 1 + John + Doe + + """; StreamSource source = new StreamSource(new StringReader(request)); this.client.sendRequest(RequestCreators.withPayload(source)).andExpect(ResponseMatchers.noFault()); - DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - then(this.service).should() - .bookHoliday(dateFormat.parse("2013-10-20"), dateFormat.parse("2013-11-22"), "John Doe"); + then(this.service).should().bookHoliday(LocalDate.of(2013, 10, 20), LocalDate.of(2013, 11, 22), "John Doe"); } }