Merge branch '3.3.x' into 3.4.x
Closes gh-44521
This commit is contained in:
commit
72289e22d9
@ -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")
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
|
@ -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 + "]");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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 = "<hr:HolidayRequest xmlns:hr=\"https://company.example.com/hr/schemas\">"
|
||||
+ " <hr:Holiday> <hr:StartDate>2013-10-20</hr:StartDate>"
|
||||
+ " <hr:EndDate>2013-11-22</hr:EndDate> </hr:Holiday> <hr:Employee>"
|
||||
+ " <hr:Number>1</hr:Number> <hr:FirstName>John</hr:FirstName>"
|
||||
+ " <hr:LastName>Doe</hr:LastName> </hr:Employee></hr:HolidayRequest>";
|
||||
String request = """
|
||||
<hr:HolidayRequest xmlns:hr="https://company.example.com/hr/schemas">
|
||||
<hr:Holiday>
|
||||
<hr:StartDate>2013-10-20</hr:StartDate>
|
||||
<hr:EndDate>2013-11-22</hr:EndDate>
|
||||
</hr:Holiday>
|
||||
<hr:Employee>
|
||||
<hr:Number>1</hr:Number>
|
||||
<hr:FirstName>John</hr:FirstName>
|
||||
<hr:LastName>Doe</hr:LastName>
|
||||
</hr:Employee>
|
||||
</hr:HolidayRequest>""";
|
||||
StreamSource source = new StreamSource(new StringReader(request));
|
||||
StreamResult result = new StreamResult(System.out);
|
||||
this.webServiceTemplate.sendSourceAndReceiveToResult(source, result);
|
||||
|
@ -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 = "<hr:HolidayRequest xmlns:hr=\"https://company.example.com/hr/schemas\">"
|
||||
+ " <hr:Holiday> <hr:StartDate>2013-10-20</hr:StartDate>"
|
||||
+ " <hr:EndDate>2013-11-22</hr:EndDate> </hr:Holiday> <hr:Employee>"
|
||||
+ " <hr:Number>1</hr:Number> <hr:FirstName>John</hr:FirstName>"
|
||||
+ " <hr:LastName>Doe</hr:LastName> </hr:Employee></hr:HolidayRequest>";
|
||||
void testSendingHolidayRequest() {
|
||||
String request = """
|
||||
<hr:HolidayRequest xmlns:hr="https://company.example.com/hr/schemas">
|
||||
<hr:Holiday>
|
||||
<hr:StartDate>2013-10-20</hr:StartDate>
|
||||
<hr:EndDate>2013-11-22</hr:EndDate>
|
||||
</hr:Holiday>
|
||||
<hr:Employee>
|
||||
<hr:Number>1</hr:Number>
|
||||
<hr:FirstName>John</hr:FirstName>
|
||||
<hr:LastName>Doe</hr:LastName>
|
||||
</hr:Employee>
|
||||
</hr:HolidayRequest>""";
|
||||
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");
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user