Merge branch '4.0.x'
Closes gh-1538
This commit is contained in:
@@ -40,8 +40,10 @@ public class CheckstyleConventions {
|
||||
public void apply(Project project) {
|
||||
project.getPlugins().withType(JavaPlugin.class, (java) -> {
|
||||
project.getPlugins().apply(CheckstylePlugin.class);
|
||||
project.getTasks().withType(Checkstyle.class).forEach(checkstyle -> checkstyle.getMaxHeapSize().set("1g"));
|
||||
project.getTasks().named("checkstyleTest").configure(task -> task.setEnabled(false));
|
||||
project.getTasks()
|
||||
.withType(Checkstyle.class)
|
||||
.forEach((checkstyle) -> checkstyle.getMaxHeapSize().set("1g"));
|
||||
project.getTasks().named("checkstyleTest").configure((task) -> task.setEnabled(false));
|
||||
CheckstyleExtension checkstyle = project.getExtensions().getByType(CheckstyleExtension.class);
|
||||
checkstyle.setToolVersion("10.21.1");
|
||||
checkstyle.getConfigDirectory().set(project.getRootProject().file("src/checkstyle"));
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.ws.gradle.conventions;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@@ -29,6 +31,7 @@ import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.bundling.Jar;
|
||||
import org.gradle.api.tasks.compile.JavaCompile;
|
||||
import org.gradle.api.tasks.testing.Test;
|
||||
import org.gradle.jvm.toolchain.JavaLanguageVersion;
|
||||
|
||||
@@ -43,6 +46,7 @@ class JavaPluginConventions {
|
||||
|
||||
void apply(Project project) {
|
||||
project.getPlugins().apply(SpringJavaFormatPlugin.class);
|
||||
configureJavaConventions(project);
|
||||
JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||
enableSourceAndJavadocJars(java);
|
||||
configureSourceAndTargetCompatibility(java);
|
||||
@@ -53,7 +57,22 @@ class JavaPluginConventions {
|
||||
configureJUnitPlatform(project);
|
||||
}
|
||||
|
||||
|
||||
private void configureJavaConventions(Project project) {
|
||||
project.getTasks().withType(JavaCompile.class, (compile) -> {
|
||||
compile.getOptions().setEncoding("UTF-8");
|
||||
List<String> args = compile.getOptions().getCompilerArgs();
|
||||
if (!args.contains("-parameters")) {
|
||||
args.add("-parameters");
|
||||
}
|
||||
boolean buildWithJava17 = !project.hasProperty("toolchainVersion")
|
||||
&& JavaVersion.current() == JavaVersion.VERSION_17;
|
||||
if (buildWithJava17) {
|
||||
args.addAll(Arrays.asList("-Werror", "-Xlint:unchecked", "-Xlint:deprecation", "-Xlint:rawtypes",
|
||||
"-Xlint:varargs"));
|
||||
}
|
||||
});
|
||||
project.getDependencies().add("compileOnly", "com.google.code.findbugs:jsr305");
|
||||
}
|
||||
|
||||
private void enableSourceAndJavadocJars(JavaPluginExtension java) {
|
||||
java.withSourcesJar();
|
||||
@@ -111,6 +130,7 @@ class JavaPluginConventions {
|
||||
|
||||
private void configureJUnitPlatform(Project project) {
|
||||
project.getTasks().withType(Test.class).configureEach((task) -> task.useJUnitPlatform());
|
||||
project.getDependencies().add("testImplementation", "org.apiguardian:apiguardian-api");
|
||||
project.getDependencies().add("testRuntimeOnly", "org.junit.platform:junit-platform-launcher");
|
||||
}
|
||||
|
||||
|
||||
@@ -294,12 +294,7 @@ public class AxiomSoapMessage extends AbstractSoapMessage implements StreamingWe
|
||||
writeSwAMessage(outputStream, outputFormat);
|
||||
}
|
||||
else {
|
||||
if (this.payloadCaching) {
|
||||
this.axiomMessage.serialize(outputStream, outputFormat);
|
||||
}
|
||||
else {
|
||||
this.axiomMessage.serializeAndConsume(outputStream, outputFormat);
|
||||
}
|
||||
this.axiomMessage.serialize(outputStream, outputFormat, this.payloadCaching);
|
||||
}
|
||||
outputStream.flush();
|
||||
}
|
||||
@@ -347,11 +342,11 @@ public class AxiomSoapMessage extends AbstractSoapMessage implements StreamingWe
|
||||
throws XMLStreamException, UnsupportedEncodingException {
|
||||
StringWriter writer = new StringWriter();
|
||||
SOAPEnvelope envelope = this.axiomMessage.getSOAPEnvelope();
|
||||
if (this.payloadCaching) {
|
||||
envelope.serialize(writer, format);
|
||||
try {
|
||||
envelope.serialize(writer, format, this.payloadCaching);
|
||||
}
|
||||
else {
|
||||
envelope.serializeAndConsume(writer, format);
|
||||
catch (IOException ex) {
|
||||
throw new XMLStreamException(ex);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -31,13 +31,10 @@ import org.apache.axiom.om.OMAbstractFactory;
|
||||
import org.apache.axiom.om.OMException;
|
||||
import org.apache.axiom.om.OMXMLBuilderFactory;
|
||||
import org.apache.axiom.om.impl.MTOMConstants;
|
||||
import org.apache.axiom.soap.SOAP11Constants;
|
||||
import org.apache.axiom.soap.SOAP11Version;
|
||||
import org.apache.axiom.soap.SOAP12Constants;
|
||||
import org.apache.axiom.soap.SOAP12Version;
|
||||
import org.apache.axiom.soap.SOAPFactory;
|
||||
import org.apache.axiom.soap.SOAPMessage;
|
||||
import org.apache.axiom.soap.SOAPModelBuilder;
|
||||
import org.apache.axiom.soap.SOAPVersion;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
@@ -316,19 +313,6 @@ public class AxiomSoapMessageFactory implements SoapMessageFactory, Initializing
|
||||
this.langAttributeOnSoap11FaultString);
|
||||
}
|
||||
|
||||
private String getSoapEnvelopeNamespace(String contentType) {
|
||||
if (contentType.contains(SOAP11Constants.SOAP_11_CONTENT_TYPE)) {
|
||||
return SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
|
||||
}
|
||||
else if (contentType.contains(SOAP12Constants.SOAP_12_CONTENT_TYPE)) {
|
||||
return SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
|
||||
}
|
||||
else {
|
||||
throw new AxiomSoapMessageCreationException("Unknown content type '" + contentType + "'");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the character set from the given content type. Mostly copied
|
||||
* @return the character set encoding
|
||||
@@ -385,10 +369,10 @@ public class AxiomSoapMessageFactory implements SoapMessageFactory, Initializing
|
||||
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder("AxiomSoapMessageFactory[");
|
||||
if (this.soapFactory.getSOAPVersion() == SOAP11Version.getSingleton()) {
|
||||
if (this.soapFactory.getSOAPVersion() == SOAPVersion.SOAP11) {
|
||||
builder.append("SOAP 1.1");
|
||||
}
|
||||
else if (this.soapFactory.getSOAPVersion() == SOAP12Version.getSingleton()) {
|
||||
else if (this.soapFactory.getSOAPVersion() == SOAPVersion.SOAP12) {
|
||||
builder.append("SOAP 1.2");
|
||||
}
|
||||
builder.append(',');
|
||||
|
||||
@@ -75,6 +75,7 @@ class NonCachingPayload extends AbstractPayload {
|
||||
|
||||
private boolean payloadAdded = false;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private DelegatingStreamWriter() {
|
||||
try {
|
||||
this.delegate = StAXUtils.createXMLStreamWriter(this.baos);
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.apache.axiom.om.OMContainer;
|
||||
import org.apache.axiom.om.OMElement;
|
||||
import org.apache.axiom.om.OMException;
|
||||
import org.apache.axiom.om.OMNamespace;
|
||||
import org.apache.axiom.om.OMOutputFormat;
|
||||
import org.apache.axiom.om.OMXMLBuilderFactory;
|
||||
import org.apache.axiom.soap.SOAPEnvelope;
|
||||
import org.w3c.dom.Document;
|
||||
@@ -50,6 +51,8 @@ import org.springframework.xml.DocumentBuilderFactoryUtils;
|
||||
@SuppressWarnings("Since15")
|
||||
public abstract class AxiomUtils {
|
||||
|
||||
private static final OMOutputFormat DEFAULT_OUTPUT_FORMAT = new OMOutputFormat();
|
||||
|
||||
/**
|
||||
* Converts a {@code javax.xml.namespace.QName} to a
|
||||
* {@code org.apache.axiom.om.OMNamespace}. A {@code OMElement} is used to resolve the
|
||||
@@ -116,7 +119,7 @@ public abstract class AxiomUtils {
|
||||
else {
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
envelope.build();
|
||||
envelope.serialize(bos);
|
||||
envelope.serialize(bos, DEFAULT_OUTPUT_FORMAT, true);
|
||||
|
||||
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
|
||||
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactoryUtils.newInstance();
|
||||
|
||||
@@ -118,7 +118,7 @@ public class WebServiceTemplateTests {
|
||||
WebServiceMessageCallback requestCallback = mock(WebServiceMessageCallback.class);
|
||||
requestCallback.doWithMessage(isA(WebServiceMessage.class));
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
Object extracted = new Object();
|
||||
when(extractorMock.extractData(isA(WebServiceMessage.class))).thenReturn(extracted);
|
||||
|
||||
@@ -136,7 +136,7 @@ public class WebServiceTemplateTests {
|
||||
@Test
|
||||
public void testSendAndReceiveMessageNoResponse() throws Exception {
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<?> extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
|
||||
this.connectionMock.send(isA(WebServiceMessage.class));
|
||||
when(this.connectionMock.hasError()).thenReturn(false);
|
||||
@@ -151,7 +151,7 @@ public class WebServiceTemplateTests {
|
||||
@Test
|
||||
public void testSendAndReceiveMessageFault() throws Exception {
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
|
||||
FaultMessageResolver faultMessageResolverMock = mock(FaultMessageResolver.class);
|
||||
this.template.setFaultMessageResolver(faultMessageResolverMock);
|
||||
@@ -174,7 +174,7 @@ public class WebServiceTemplateTests {
|
||||
@Test
|
||||
public void testSendAndReceiveConnectionError() throws Exception {
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
|
||||
this.template.setFaultMessageResolver(null);
|
||||
|
||||
@@ -193,7 +193,7 @@ public class WebServiceTemplateTests {
|
||||
@Test
|
||||
public void testSendAndReceiveSourceResponse() throws Exception {
|
||||
|
||||
SourceExtractor extractorMock = mock(SourceExtractor.class);
|
||||
SourceExtractor<Object> extractorMock = mockSourceExtractor();
|
||||
Object extracted = new Object();
|
||||
when(extractorMock.extractData(isA(Source.class))).thenReturn(extracted);
|
||||
|
||||
@@ -211,7 +211,7 @@ public class WebServiceTemplateTests {
|
||||
@Test
|
||||
public void testSendAndReceiveSourceNoResponse() throws Exception {
|
||||
|
||||
SourceExtractor extractorMock = mock(SourceExtractor.class);
|
||||
SourceExtractor<Object> extractorMock = mockSourceExtractor();
|
||||
|
||||
this.connectionMock.send(isA(WebServiceMessage.class));
|
||||
when(this.connectionMock.hasError()).thenReturn(false);
|
||||
@@ -330,7 +330,7 @@ public class WebServiceTemplateTests {
|
||||
WebServiceMessageCallback requestCallback = mock(WebServiceMessageCallback.class);
|
||||
requestCallback.doWithMessage(isA(WebServiceMessage.class));
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
Object extracted = new Object();
|
||||
when(extractorMock.extractData(isA(WebServiceMessage.class))).thenReturn(extracted);
|
||||
|
||||
@@ -361,7 +361,7 @@ public class WebServiceTemplateTests {
|
||||
WebServiceMessageCallback requestCallback = mock(WebServiceMessageCallback.class);
|
||||
requestCallback.doWithMessage(isA(WebServiceMessage.class));
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
Object extracted = new Object();
|
||||
when(extractorMock.extractData(isA(WebServiceMessage.class))).thenReturn(extracted);
|
||||
|
||||
@@ -390,7 +390,7 @@ public class WebServiceTemplateTests {
|
||||
WebServiceMessageCallback requestCallback = mock(WebServiceMessageCallback.class);
|
||||
requestCallback.doWithMessage(messageContext.getRequest());
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
|
||||
Object result = this.template.doSendAndReceive(messageContext, this.connectionMock, requestCallback,
|
||||
extractorMock);
|
||||
@@ -415,7 +415,7 @@ public class WebServiceTemplateTests {
|
||||
WebServiceMessageCallback requestCallback = mock(WebServiceMessageCallback.class);
|
||||
requestCallback.doWithMessage(messageContext.getRequest());
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
Object extracted = new Object();
|
||||
when(extractorMock.extractData(messageContext.getResponse())).thenReturn(extracted);
|
||||
|
||||
@@ -585,7 +585,7 @@ public class WebServiceTemplateTests {
|
||||
}
|
||||
});
|
||||
|
||||
WebServiceMessageExtractor extractorMock = mock(WebServiceMessageExtractor.class);
|
||||
WebServiceMessageExtractor<Object> extractorMock = mockWebServiceMessageExtractor();
|
||||
|
||||
reset(this.connectionMock);
|
||||
|
||||
@@ -600,6 +600,14 @@ public class WebServiceTemplateTests {
|
||||
assertThat(result).isNull();
|
||||
}
|
||||
|
||||
private static WebServiceMessageExtractor<Object> mockWebServiceMessageExtractor() {
|
||||
return mock(WebServiceMessageExtractor.class);
|
||||
}
|
||||
|
||||
private static SourceExtractor<Object> mockSourceExtractor() {
|
||||
return mock(SourceExtractor.class);
|
||||
}
|
||||
|
||||
private static class NoOpClientInterceptor
|
||||
implements ClientInterceptor, AssertProvider<NoOpClientInterceptorAssert> {
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public class NonCachingPayloadTests {
|
||||
streamWriter.flush();
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
this.body.serialize(writer);
|
||||
this.body.serialize(writer, true);
|
||||
|
||||
String expected = "<soapenv:Body xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>"
|
||||
+ "<root xmlns='http://springframework.org/spring-ws'>" + "<child>text</child>"
|
||||
@@ -85,7 +85,7 @@ public class NonCachingPayloadTests {
|
||||
streamWriter.flush();
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
this.body.serialize(writer);
|
||||
this.body.serialize(writer, true);
|
||||
|
||||
String expected = "<soapenv:Body xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>"
|
||||
+ "<root xmlns='http://springframework.org/spring-ws'>" + "<child>text</child>"
|
||||
@@ -107,7 +107,7 @@ public class NonCachingPayloadTests {
|
||||
streamWriter.flush();
|
||||
|
||||
StringWriter writer = new StringWriter();
|
||||
this.body.serialize(writer);
|
||||
this.body.serialize(writer, true);
|
||||
|
||||
String expected = "<soapenv:Body xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>"
|
||||
+ "<root xmlns='http://springframework.org/spring-ws'>" + "<child />" + "</root></soapenv:Body>";
|
||||
|
||||
@@ -147,7 +147,7 @@ public class AxiomUtilsTests {
|
||||
|
||||
SOAPEnvelope envelope = AxiomUtils.toEnvelope(document);
|
||||
StringWriter writer = new StringWriter();
|
||||
envelope.serialize(writer);
|
||||
envelope.serialize(writer, true);
|
||||
String result = writer.toString();
|
||||
|
||||
XmlAssert.assertThat(result).and(expected).ignoreWhitespace().areIdentical();
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.ws.wsdl.wsdl11.provider;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.wsdl.Definition;
|
||||
import javax.wsdl.Types;
|
||||
import javax.wsdl.extensions.schema.Schema;
|
||||
@@ -65,9 +67,9 @@ public class InliningXsdSchemaTypesProviderTests {
|
||||
Types types = this.definition.getTypes();
|
||||
|
||||
assertThat(types).isNotNull();
|
||||
assertThat(types.getExtensibilityElements()).hasSize(1);
|
||||
assertThat(getExtensibilityElements(types)).hasSize(1);
|
||||
|
||||
Schema wsdlSchema = (Schema) types.getExtensibilityElements().get(0);
|
||||
Schema wsdlSchema = (Schema) getExtensibilityElements(types).get(0);
|
||||
|
||||
assertThat(wsdlSchema.getElement()).isNotNull();
|
||||
}
|
||||
@@ -93,15 +95,19 @@ public class InliningXsdSchemaTypesProviderTests {
|
||||
Types types = this.definition.getTypes();
|
||||
|
||||
assertThat(types).isNotNull();
|
||||
assertThat(types.getExtensibilityElements()).hasSize(2);
|
||||
assertThat(getExtensibilityElements(types)).hasSize(2);
|
||||
|
||||
Schema wsdlSchema = (Schema) types.getExtensibilityElements().get(0);
|
||||
Schema wsdlSchema = (Schema) getExtensibilityElements(types).get(0);
|
||||
|
||||
assertThat(wsdlSchema.getElement()).isNotNull();
|
||||
|
||||
wsdlSchema = (Schema) types.getExtensibilityElements().get(1);
|
||||
wsdlSchema = (Schema) getExtensibilityElements(types).get(1);
|
||||
|
||||
assertThat(wsdlSchema.getElement()).isNotNull();
|
||||
}
|
||||
|
||||
private static List<?> getExtensibilityElements(Types types) {
|
||||
return types.getExtensibilityElements();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ dependencies {
|
||||
api(platform("org.springframework.security:spring-security-bom:6.5.0-SNAPSHOT"))
|
||||
constraints {
|
||||
api("com.fasterxml.woodstox:woodstox-core:6.5.1")
|
||||
api("com.google.code.findbugs:jsr305:3.0.2")
|
||||
api("com.icegreen:greenmail:2.0.1")
|
||||
api("com.icegreen:greenmail-junit5:2.0.1")
|
||||
api("com.icegreen:greenmail-spring:2.0.1")
|
||||
@@ -42,6 +43,7 @@ dependencies {
|
||||
api("org.apache.ws.commons.axiom:axiom-impl:2.0.0")
|
||||
api("org.apache.ws.commons.axiom:axiom-legacy-attachments:2.0.0")
|
||||
api("org.apache.ws.xmlschema:xmlschema-core:2.3.1")
|
||||
api("org.apiguardian:apiguardian-api:1.1.2")
|
||||
api("org.aspectj:aspectjrt:1.9.22")
|
||||
api("org.aspectj:aspectjweaver:1.9.22")
|
||||
api("org.assertj:assertj-core:3.25.3")
|
||||
|
||||
Reference in New Issue
Block a user