Adapt to deprecation

This commit is contained in:
Stéphane Nicoll
2025-02-27 09:46:59 +01:00
parent fb4ab827c5
commit 5a1e5028cb
38 changed files with 103 additions and 50 deletions

View File

@@ -35,7 +35,7 @@ import java.lang.annotation.Target;
* </ul>
*
* @author Arjen Poutsma
* @see org.springframework.ws.server.endpoint.adapter.XPathParamAnnotationMethodEndpointAdapter
* @see org.springframework.ws.server.endpoint.adapter.method.XPathParamMethodArgumentResolver
* @since 1.0.0
*/
@Target(ElementType.PARAMETER)

View File

@@ -19,6 +19,7 @@ package org.springframework.ws.server.endpoint.interceptor;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
@@ -30,7 +31,6 @@ import javax.xml.transform.stream.StreamSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
@@ -139,7 +139,9 @@ public class PayloadTransformingInterceptor extends TransformerObjectSupport
throw new IllegalArgumentException("Setting either 'requestXslt' or 'responseXslt' is required");
}
TransformerFactory transformerFactory = getTransformerFactory();
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XMLReader xmlReader = parserFactory.newSAXParser().getXMLReader();
xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
if (requestXslt != null) {
Assert.isTrue(requestXslt.exists(), "requestXslt \"" + requestXslt + "\" does not exit");

View File

@@ -16,6 +16,7 @@
package org.springframework.ws.server.endpoint.mapping.jaxb;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javax.xml.namespace.QName;
@@ -86,13 +87,13 @@ public class XmlRootElementEndpointMapping extends AbstractAnnotationMethodEndpo
private QName handleRootElement(Class<?> parameterType) {
try {
Object param = parameterType.newInstance();
Object param = parameterType.getDeclaredConstructor().newInstance();
QName result = getElementName(parameterType, param);
if (result != null) {
return result;
}
}
catch (InstantiationException | IllegalAccessException e) {
catch (InvocationTargetException | NoSuchMethodException | InstantiationException | IllegalAccessException e) {
// ignore
}
return null;

View File

@@ -323,6 +323,7 @@ public class MessageDispatcherServlet extends FrameworkServlet {
}
@Override
@SuppressWarnings("deprecation")
protected long getLastModified(HttpServletRequest httpServletRequest) {
WsdlDefinition definition = getWsdlDefinition(httpServletRequest);
if (definition != null) {

View File

@@ -49,6 +49,7 @@ public class WebServiceMessageReceiverHandlerAdapter extends WebServiceMessageRe
implements HandlerAdapter {
@Override
@Deprecated
public long getLastModified(HttpServletRequest request, Object handler) {
return -1L;
}

View File

@@ -140,6 +140,7 @@ public class WsdlDefinitionHandlerAdapter extends LocationTransformerObjectSuppo
}
@Override
@Deprecated
public long getLastModified(HttpServletRequest request, Object handler) {
Source definitionSource = ((WsdlDefinition) handler).getSource();
return LastModifiedHelper.getLastModified(definitionSource);

View File

@@ -88,6 +88,7 @@ public class XsdSchemaHandlerAdapter extends LocationTransformerObjectSupport
}
@Override
@Deprecated
public long getLastModified(HttpServletRequest request, Object handler) {
Source schemaSource = ((XsdSchema) handler).getSource();
return LastModifiedHelper.getLastModified(schemaSource);

View File

@@ -18,11 +18,12 @@ package org.springframework.ws.wsdl.wsdl11;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.Source;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
@@ -72,11 +73,13 @@ public class SimpleWsdl11Definition implements Wsdl11Definition, InitializingBea
@Override
public Source getSource() {
try {
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XMLReader xmlReader = parserFactory.newSAXParser().getXMLReader();
xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
return new ResourceSource(xmlReader, wsdlResource);
}
catch (SAXException ex) {
catch (SAXException | ParserConfigurationException ex) {
throw new WsdlDefinitionException("Could not create XMLReader", ex);
}
catch (IOException ex) {

View File

@@ -26,6 +26,7 @@ import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLInputFactory;
@@ -48,7 +49,6 @@ import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -187,8 +187,9 @@ public abstract class AbstractWebServiceMessageTest {
}
private void validateMessage() throws Exception {
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XMLReader xmlReader = parserFactory.newSAXParser().getXMLReader();
xmlReader.setContentHandler(new DefaultHandler());
ByteArrayOutputStream os = new ByteArrayOutputStream();
webServiceMessage.writeTo(os);

View File

@@ -27,6 +27,7 @@ import org.springframework.ws.server.endpoint.adapter.MarshallingMethodEndpointA
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class WebServiceNamespaceHandlerTest {
private ApplicationContext applicationContext;

View File

@@ -28,6 +28,7 @@ import org.springframework.ws.server.endpoint.adapter.XPathParamAnnotationMethod
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class WebServicesNamespaceHandlerTigerTest {
private ApplicationContext applicationContext;

View File

@@ -24,6 +24,7 @@ import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
@@ -36,7 +37,6 @@ import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.util.xml.StaxUtils;
import org.springframework.xml.DocumentBuilderFactoryUtils;
@@ -67,8 +67,9 @@ public abstract class AbstractEndpointTest {
@Test
public void testSaxSource() throws Exception {
XMLReader reader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XMLReader reader = parserFactory.newSAXParser().getXMLReader();
InputSource inputSource = new InputSource(new StringReader(REQUEST));
testSource(new SAXSource(reader, inputSource));
}

View File

@@ -16,11 +16,12 @@
package org.springframework.ws.server.endpoint;
import static org.assertj.core.api.Assertions.*;
import org.dom4j.Document;
import org.dom4j.Element;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class Dom4jPayloadEndpointTest extends AbstractPayloadEndpointTest {
@Override

View File

@@ -21,6 +21,7 @@ import org.w3c.dom.Element;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class DomPayloadEndpointTest extends AbstractPayloadEndpointTest {
@Override

View File

@@ -21,6 +21,7 @@ import org.jdom2.Namespace;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class JDomPayloadEndpointTest extends AbstractPayloadEndpointTest {
@Override

View File

@@ -55,6 +55,7 @@ import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class MarshallingPayloadEndpointTest {
private Transformer transformer;

View File

@@ -27,6 +27,7 @@ import org.springframework.xml.transform.StringSource;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
@Deprecated
public class SaxPayloadEndpointTest extends AbstractPayloadEndpointTest {
@Override

View File

@@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
* @see AbstractStaxEventPayloadEndpoint
*/
@SuppressWarnings("Since15")
@Deprecated
public class StaxEventPayloadEndpointTest extends AbstractMessageEndpointTest {
@Override

View File

@@ -16,17 +16,16 @@
package org.springframework.ws.server.endpoint;
import static org.assertj.core.api.Assertions.*;
import jakarta.xml.soap.MessageFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.Transformer;
import jakarta.xml.soap.MessageFactory;
import org.junit.jupiter.api.Test;
import org.xmlunit.assertj.XmlAssert;
import org.springframework.ws.context.DefaultMessageContext;
import org.springframework.ws.context.MessageContext;
import org.springframework.ws.soap.saaj.SaajSoapMessage;
@@ -34,14 +33,15 @@ import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
import org.springframework.xml.transform.StringResult;
import org.springframework.xml.transform.StringSource;
import org.springframework.xml.transform.TransformerFactoryUtils;
import org.xmlunit.assertj.XmlAssert;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Test case for AbstractStaxStreamPayloadEndpoint.
*
* @see AbstractStaxStreamPayloadEndpoint
*/
@SuppressWarnings("Since15")
@Deprecated
public class StaxStreamPayloadEndpointTest extends AbstractMessageEndpointTest {
@Override

View File

@@ -16,10 +16,11 @@
package org.springframework.ws.server.endpoint;
import static org.assertj.core.api.Assertions.*;
import nu.xom.Element;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class XomPayloadEndpointTest extends AbstractPayloadEndpointTest {
@Override

View File

@@ -41,6 +41,7 @@ import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class GenericMarshallingMethodEndpointAdapterTest {
private GenericMarshallingMethodEndpointAdapter adapter;

View File

@@ -39,6 +39,7 @@ import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class MarshallingMethodEndpointAdapterTest {
private MarshallingMethodEndpointAdapter adapter;

View File

@@ -26,6 +26,7 @@ import org.springframework.ws.server.endpoint.MethodEndpoint;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class MessageMethodEndpointAdapterTest {
private MessageMethodEndpointAdapter adapter;

View File

@@ -32,6 +32,7 @@ import org.springframework.ws.server.endpoint.MethodEndpoint;
import static org.assertj.core.api.Assertions.assertThat;
@Deprecated
public class PayloadMethodEndpointAdapterTest {
private PayloadMethodEndpointAdapter adapter;

View File

@@ -48,6 +48,7 @@ import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class XPathParamAnnotationMethodEndpointAdapterTest {
private static final String CONTENTS = "<root><child><text>text</text><number>42.0</number></child></root>";

View File

@@ -46,6 +46,7 @@ import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
@Deprecated
public class FaultCreatingValidatingMarshallingPayloadEndpointTest {
private MessageContext messageContext;

View File

@@ -22,7 +22,7 @@ import java.util.Collections;
import java.util.Random;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.CountingInputStream;
import org.apache.commons.io.input.BoundedInputStream;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
@@ -46,11 +46,11 @@ public class AbstractHttpSenderConnectionTest {
* enabled.
*/
private void testSupportsStreaming(boolean chunking) throws Exception {
byte[] content = new byte[16 * 1024];
new Random().nextBytes(content);
CountingInputStream rawInputStream = new CountingInputStream(new ByteArrayInputStream(content));
BoundedInputStream rawInputStream = BoundedInputStream.builder()
.setInputStream(new ByteArrayInputStream(content))
.get();
AbstractHttpSenderConnection connection = spy(AbstractHttpSenderConnection.class);
when(connection.getResponseCode()).thenReturn(200);
// Simulate response with chunking enabled

View File

@@ -39,6 +39,7 @@ import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
import org.springframework.ws.transport.WebServiceConnection;
import org.springframework.ws.transport.support.FreePortScanner;
@Deprecated
public class CommonsHttpMessageSenderIntegrationTest
extends AbstractHttpWebServiceMessageSenderIntegrationTest<CommonsHttpMessageSender> {
@@ -52,7 +53,7 @@ public class CommonsHttpMessageSenderIntegrationTest
CommonsHttpMessageSender messageSender = new CommonsHttpMessageSender();
messageSender.setMaxTotalConnections(2);
Map<String, String> maxConnectionsPerHost = new HashMap<String, String>();
Map<String, String> maxConnectionsPerHost = new HashMap<>();
maxConnectionsPerHost.put("https://www.example.com", "1");
maxConnectionsPerHost.put("http://www.example.com:8080", "7");
maxConnectionsPerHost.put("www.springframework.org", "10");

View File

@@ -45,6 +45,7 @@ import org.springframework.ws.transport.support.FreePortScanner;
import static org.assertj.core.api.Assertions.assertThat;
@SuppressWarnings("deprecation")
public class HttpComponentsMessageSenderIntegrationTest
extends AbstractHttpWebServiceMessageSenderIntegrationTest<HttpComponentsMessageSender> {

View File

@@ -56,6 +56,7 @@ public class XsdSchemaHandlerAdapterTest {
}
@Test
@Deprecated
public void getLastModified() throws Exception {
Resource single = new ClassPathResource("single.xsd", getClass());

View File

@@ -54,8 +54,8 @@ public class SpringBasedX509UserCache implements X509UserCache, InitializingBean
String subjectDN = "unknown";
if ((userCert != null) && (userCert.getSubjectDN() != null)) {
subjectDN = userCert.getSubjectDN().toString();
if ((userCert != null) && (userCert.getSubjectX500Principal() != null)) {
subjectDN = userCert.getSubjectX500Principal().toString();
}
logger.debug("X.509 Cache hit. SubjectDN: " + subjectDN);
@@ -68,7 +68,7 @@ public class SpringBasedX509UserCache implements X509UserCache, InitializingBean
public void putUserInCache(X509Certificate userCert, UserDetails user) {
if (logger.isDebugEnabled()) {
logger.debug("Cache put: " + userCert.getSubjectDN());
logger.debug("Cache put: " + userCert.getSubjectX500Principal());
}
cache.put(userCert, user);
@@ -78,7 +78,7 @@ public class SpringBasedX509UserCache implements X509UserCache, InitializingBean
public void removeUserFromCache(X509Certificate userCert) {
if (logger.isDebugEnabled()) {
logger.debug("Cache remove: " + userCert.getSubjectDN());
logger.debug("Cache remove: " + userCert.getSubjectX500Principal());
}
cache.evict(userCert);

View File

@@ -69,7 +69,7 @@ public class DaoX509AuthoritiesPopulator implements X509AuthoritiesPopulator, In
@Override
public UserDetails getUserDetails(X509Certificate clientCert) throws AuthenticationException {
String subjectDN = clientCert.getSubjectDN().getName();
String subjectDN = clientCert.getSubjectX500Principal().getName();
Matcher matcher = subjectDNPattern.matcher(subjectDN);

View File

@@ -16,17 +16,21 @@
package org.springframework.ws.test.support.matcher;
import static org.assertj.core.api.Assertions.*;
import static org.easymock.EasyMock.*;
import jakarta.xml.soap.MessageFactory;
import org.junit.jupiter.api.Test;
import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.saaj.SaajSoapMessage;
import org.springframework.xml.transform.StringSource;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class PayloadDiffMatcherTest {
@Test

View File

@@ -31,6 +31,7 @@ import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
@Deprecated
public class SoapEnvelopeDiffMatcherTest {
@Test

View File

@@ -15,6 +15,8 @@
*/
package org.springframework.xml.transform;
import java.lang.reflect.InvocationTargetException;
import javax.xml.XMLConstants;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
@@ -43,9 +45,9 @@ public class TransformerFactoryUtils {
*/
public static TransformerFactory newInstance(Class<? extends TransformerFactory> transformerFactoryClass) {
try {
return defaultSettings(transformerFactoryClass.newInstance());
return defaultSettings(transformerFactoryClass.getDeclaredConstructor().newInstance());
}
catch (InstantiationException | IllegalAccessException e) {
catch (InvocationTargetException | NoSuchMethodException | InstantiationException | IllegalAccessException e) {
throw new TransformerFactoryConfigurationError(e,
"Could not instantiate TransformerFactory [" + transformerFactoryClass + "]");
}

View File

@@ -15,9 +15,12 @@
*/
package org.springframework.xml.validation;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
/**
* @author Greg Turnquist
@@ -27,17 +30,27 @@ public class XMLReaderFactoryUtils {
/**
* Build a {@link XMLReader} and set properties to prevent external entity access.
* @see XMLReaderFactory#createXMLReader()
* @see SAXParser#getXMLReader()
*/
public static XMLReader createXMLReader() throws SAXException {
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
XMLReader xmlReader = namespaceAwareXmlReader();
xmlReader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
xmlReader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
xmlReader.setFeature("http://xml.org/sax/features/external-general-entities", false);
xmlReader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
return xmlReader;
}
private static XMLReader namespaceAwareXmlReader() throws SAXException {
try {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
return parserFactory.newSAXParser().getXMLReader();
}
catch (ParserConfigurationException ex) {
throw new IllegalStateException(ex);
}
}
}

View File

@@ -20,6 +20,7 @@ import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParserFactory;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -27,7 +28,6 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.xml.DocumentBuilderFactoryUtils;
@@ -63,7 +63,9 @@ public class DomContentHandlerTest {
documentBuilderFactory.setNamespaceAware(true);
documentBuilder = documentBuilderFactory.newDocumentBuilder();
result = documentBuilder.newDocument();
xmlReader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
xmlReader = parserFactory.newSAXParser().getXMLReader();
}
@Test

View File

@@ -28,6 +28,7 @@ import java.nio.charset.StandardCharsets;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLInputFactory;
@@ -52,7 +53,6 @@ import org.xml.sax.XMLReader;
import org.xml.sax.ext.DefaultHandler2;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.helpers.XMLReaderFactory;
import org.springframework.util.xml.StaxUtils;
import org.springframework.xml.DocumentBuilderFactoryUtils;
@@ -119,7 +119,9 @@ public class TraxUtilsTest {
@Test
public void testDoWithSaxSource() throws Exception {
XMLReader reader = XMLReaderFactory.createXMLReader();
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
XMLReader reader = parserFactory.newSAXParser().getXMLReader();
InputSource inputSource = new InputSource();
TraxUtils.SourceCallback mock = createMock(TraxUtils.SourceCallback.class);