diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxEventPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxEventPayloadEndpoint.java index f986b6e7..e854ae2a 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxEventPayloadEndpoint.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxEventPayloadEndpoint.java @@ -32,9 +32,9 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; +import org.springframework.util.xml.StaxUtils; import org.springframework.ws.WebServiceMessage; import org.springframework.ws.context.MessageContext; -import org.springframework.xml.transform.TraxUtils; /** * Abstract base class for endpoints that handle the message payload with event-based StAX. Allows subclasses to read @@ -49,7 +49,6 @@ import org.springframework.xml.transform.TraxUtils; * @deprecated as of Spring Web Services 2.0, in favor of annotated endpoints */ @Deprecated -@SuppressWarnings("Since15") public abstract class AbstractStaxEventPayloadEndpoint extends AbstractStaxPayloadEndpoint implements MessageEndpoint { private XMLEventFactory eventFactory; @@ -85,10 +84,10 @@ public abstract class AbstractStaxEventPayloadEndpoint extends AbstractStaxPaylo return null; } XMLEventReader eventReader = null; - if (TraxUtils.isStaxSource(source)) { - eventReader = TraxUtils.getXMLEventReader(source); + if (StaxUtils.isStaxSource(source)) { + eventReader = StaxUtils.getXMLEventReader(source); if (eventReader == null) { - XMLStreamReader streamReader = TraxUtils.getXMLStreamReader(source); + XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(source); if (streamReader != null) { try { eventReader = getInputFactory().createXMLEventReader(streamReader); @@ -122,8 +121,8 @@ public abstract class AbstractStaxEventPayloadEndpoint extends AbstractStaxPaylo private XMLEventWriter getEventWriter(Result result) { XMLEventWriter eventWriter = null; - if (TraxUtils.isStaxResult(result)) { - eventWriter = TraxUtils.getXMLEventWriter(result); + if (StaxUtils.isStaxResult(result)) { + eventWriter = StaxUtils.getXMLEventWriter(result); } if (eventWriter == null) { try { diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxStreamPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxStreamPayloadEndpoint.java index 0b138f4a..ad2fad80 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxStreamPayloadEndpoint.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/AbstractStaxStreamPayloadEndpoint.java @@ -29,10 +29,9 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; +import org.springframework.util.xml.StaxUtils; import org.springframework.ws.WebServiceMessage; import org.springframework.ws.context.MessageContext; -import org.springframework.xml.stream.XmlEventStreamReader; -import org.springframework.xml.transform.TraxUtils; /** * Abstract base class for endpoints that handle the message payload with streaming StAX. Allows subclasses to read the @@ -61,13 +60,13 @@ public abstract class AbstractStaxStreamPayloadEndpoint extends AbstractStaxPayl return null; } XMLStreamReader streamReader = null; - if (TraxUtils.isStaxSource(source)) { - streamReader = TraxUtils.getXMLStreamReader(source); + if (StaxUtils.isStaxSource(source)) { + streamReader = StaxUtils.getXMLStreamReader(source); if (streamReader == null) { - XMLEventReader eventReader = TraxUtils.getXMLEventReader(source); + XMLEventReader eventReader = StaxUtils.getXMLEventReader(source); if (eventReader != null) { try { - streamReader = new XmlEventStreamReader(eventReader); + streamReader = StaxUtils.createEventStreamReader(eventReader); } catch (XMLStreamException ex) { streamReader = null; @@ -99,8 +98,8 @@ public abstract class AbstractStaxStreamPayloadEndpoint extends AbstractStaxPayl private XMLStreamWriter getStreamWriter(Result result) { XMLStreamWriter streamWriter = null; - if (TraxUtils.isStaxResult(result)) { - streamWriter = TraxUtils.getXMLStreamWriter(result); + if (StaxUtils.isStaxResult(result)) { + streamWriter = StaxUtils.getXMLStreamWriter(result); } if (streamWriter == null) { try { diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessor.java b/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessor.java index 50c8009b..c5f4a4b6 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessor.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessor.java @@ -17,8 +17,11 @@ package org.springframework.ws.server.endpoint.adapter.method; import java.io.ByteArrayInputStream; +import javax.xml.stream.Location; import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.util.StreamReaderDelegate; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; @@ -28,7 +31,6 @@ import javax.xml.transform.stream.StreamSource; import org.springframework.core.MethodParameter; import org.springframework.xml.JaxpVersion; -import org.springframework.xml.transform.StaxSource; import org.w3c.dom.Document; import org.w3c.dom.Node; @@ -41,7 +43,6 @@ import org.xml.sax.InputSource; * @author Arjen Poutsma * @since 2.0 */ -@SuppressWarnings("Since15") public class SourcePayloadMethodProcessor extends AbstractPayloadSourceMethodProcessor { private XMLInputFactory inputFactory = createXmlInputFactory(); @@ -70,11 +71,6 @@ public class SourcePayloadMethodProcessor extends AbstractPayloadSourceMethodPro return new DOMSource(domResult.getNode()); } } - else if (StaxSource.class.isAssignableFrom(parameterType)) { - ByteArrayInputStream bis = convertToByteArrayInputStream(requestPayload); - XMLStreamReader streamReader = inputFactory.createXMLStreamReader(bis); - return new StaxSource(streamReader); - } else if (SAXSource.class.isAssignableFrom(parameterType)) { ByteArrayInputStream bis = convertToByteArrayInputStream(requestPayload); InputSource inputSource = new InputSource(bis); @@ -85,9 +81,20 @@ public class SourcePayloadMethodProcessor extends AbstractPayloadSourceMethodPro return new StreamSource(bis); } else if (JaxpVersion.isAtLeastJaxp14() && Jaxp14StaxHandler.isStaxSource(parameterType)) { - ByteArrayInputStream bis = convertToByteArrayInputStream(requestPayload); - XMLStreamReader streamReader = inputFactory.createXMLStreamReader(bis); - return Jaxp14StaxHandler.createStaxSource(streamReader); + XMLStreamReader streamReader; + try { + streamReader = inputFactory.createXMLStreamReader(requestPayload); + } catch (UnsupportedOperationException ignored) { + streamReader = null; + } + catch (XMLStreamException ignored) { + streamReader = null; + } + if (streamReader == null) { + ByteArrayInputStream bis = convertToByteArrayInputStream(requestPayload); + streamReader = inputFactory.createXMLStreamReader(bis); + } + return Jaxp14StaxHandler.createStaxSource(streamReader, requestPayload.getSystemId()); } throw new IllegalArgumentException("Unknown Source type: " + parameterType); } @@ -128,10 +135,46 @@ public class SourcePayloadMethodProcessor extends AbstractPayloadSourceMethodPro return StAXSource.class.isAssignableFrom(clazz); } - private static Source createStaxSource(XMLStreamReader streamReader) { - return new StAXSource(streamReader); + private static Source createStaxSource(XMLStreamReader streamReader, String systemId) { + return new StAXSource(new SystemIdStreamReaderDelegate(streamReader, systemId)); } } + private static class SystemIdStreamReaderDelegate extends StreamReaderDelegate { + + private final String systemId; + + private SystemIdStreamReaderDelegate(XMLStreamReader reader, String systemId) { + super(reader); + this.systemId = systemId; + } + + @Override + public Location getLocation() { + final Location parentLocation = getParent().getLocation(); + return new Location() { + public int getLineNumber() { + return parentLocation != null ? parentLocation.getLineNumber() : -1; + } + + public int getColumnNumber() { + return parentLocation != null ? parentLocation.getColumnNumber() : -1; + } + + public int getCharacterOffset() { + return parentLocation != null ? parentLocation.getLineNumber() : -1; + } + + public String getPublicId() { + return parentLocation != null ? parentLocation.getPublicId() : null; + } + + public String getSystemId() { + return systemId; + } + }; + } + } + } diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/StaxPayloadMethodArgumentResolver.java b/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/StaxPayloadMethodArgumentResolver.java index c0756cc0..9c368138 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/StaxPayloadMethodArgumentResolver.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/adapter/method/StaxPayloadMethodArgumentResolver.java @@ -27,11 +27,10 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.stream.StreamResult; import org.springframework.core.MethodParameter; +import org.springframework.util.xml.StaxUtils; import org.springframework.ws.context.MessageContext; import org.springframework.ws.server.endpoint.annotation.RequestPayload; -import org.springframework.xml.stream.XmlEventStreamReader; import org.springframework.xml.transform.TransformerObjectSupport; -import org.springframework.xml.transform.TraxUtils; /** * Implementation of {@link MethodArgumentResolver} that supports StAX {@link XMLStreamReader} and {@link @@ -40,7 +39,6 @@ import org.springframework.xml.transform.TraxUtils; * @author Arjen Poutsma * @since 2.0 */ -@SuppressWarnings("Since15") public class StaxPayloadMethodArgumentResolver extends TransformerObjectSupport implements MethodArgumentResolver { private final XMLInputFactory inputFactory = createXmlInputFactory(); @@ -73,13 +71,13 @@ public class StaxPayloadMethodArgumentResolver extends TransformerObjectSupport private XMLStreamReader resolveStreamReader(Source requestSource) throws TransformerException, XMLStreamException { XMLStreamReader streamReader = null; - if (TraxUtils.isStaxSource(requestSource)) { - streamReader = TraxUtils.getXMLStreamReader(requestSource); + if (StaxUtils.isStaxSource(requestSource)) { + streamReader = StaxUtils.getXMLStreamReader(requestSource); if (streamReader == null) { - XMLEventReader eventReader = TraxUtils.getXMLEventReader(requestSource); + XMLEventReader eventReader = StaxUtils.getXMLEventReader(requestSource); if (eventReader != null) { try { - streamReader = new XmlEventStreamReader(eventReader); + streamReader = StaxUtils.createEventStreamReader(eventReader); } catch (XMLStreamException ex) { streamReader = null; @@ -108,10 +106,10 @@ public class StaxPayloadMethodArgumentResolver extends TransformerObjectSupport private XMLEventReader resolveEventReader(Source requestSource) throws TransformerException, XMLStreamException { XMLEventReader eventReader = null; - if (TraxUtils.isStaxSource(requestSource)) { - eventReader = TraxUtils.getXMLEventReader(requestSource); + if (StaxUtils.isStaxSource(requestSource)) { + eventReader = StaxUtils.getXMLEventReader(requestSource); if (eventReader == null) { - XMLStreamReader streamReader = TraxUtils.getXMLStreamReader(requestSource); + XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(requestSource); if (streamReader != null) { try { eventReader = inputFactory.createXMLEventReader(streamReader); diff --git a/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java b/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java index e7e84c25..f5b831d3 100644 --- a/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java +++ b/core/src/main/java/org/springframework/ws/server/endpoint/support/PayloadRootUtils.java @@ -27,8 +27,8 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; +import org.springframework.util.xml.StaxUtils; import org.springframework.xml.namespace.QNameUtils; -import org.springframework.xml.transform.TraxUtils; import org.w3c.dom.Document; import org.w3c.dom.Node; @@ -69,8 +69,8 @@ public abstract class PayloadRootUtils { return QNameUtils.getQNameForNode(document.getDocumentElement()); } } - else if (TraxUtils.isStaxSource(source)) { - XMLStreamReader streamReader = TraxUtils.getXMLStreamReader(source); + else if (StaxUtils.isStaxSource(source)) { + XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(source); if (streamReader != null) { if (streamReader.getEventType() == XMLStreamConstants.START_DOCUMENT) { try { diff --git a/core/src/main/java/org/springframework/ws/soap/addressing/server/AbstractActionMethodEndpointMapping.java b/core/src/main/java/org/springframework/ws/soap/addressing/server/AbstractActionMethodEndpointMapping.java index 178ddfc3..2ec00d7a 100644 --- a/core/src/main/java/org/springframework/ws/soap/addressing/server/AbstractActionMethodEndpointMapping.java +++ b/core/src/main/java/org/springframework/ws/soap/addressing/server/AbstractActionMethodEndpointMapping.java @@ -20,7 +20,6 @@ import java.lang.reflect.Method; import java.net.URI; import org.springframework.aop.support.AopUtils; -import org.springframework.core.JdkVersion; import org.springframework.util.Assert; import org.springframework.ws.server.endpoint.MethodEndpoint; @@ -45,8 +44,7 @@ public abstract class AbstractActionMethodEndpointMapping extends AbstractAction Assert.notNull(endpoint, "'endpoint' must not be null"); Method[] methods = AopUtils.getTargetClass(endpoint).getMethods(); for (Method method : methods) { - if (JdkVersion.isAtLeastJava15() && method.isSynthetic() || - method.getDeclaringClass().equals(Object.class)) { + if (method.isSynthetic() || method.getDeclaringClass().equals(Object.class)) { continue; } URI action = getActionForMethod(method); diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AbstractPayload.java b/core/src/main/java/org/springframework/ws/soap/axiom/AbstractPayload.java index a38ce055..9deadd8f 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AbstractPayload.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AbstractPayload.java @@ -21,8 +21,8 @@ import javax.xml.transform.Result; import javax.xml.transform.Source; import org.springframework.util.Assert; +import org.springframework.util.xml.StaxUtils; import org.springframework.ws.soap.axiom.support.AxiomUtils; -import org.springframework.xml.transform.StaxSource; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMException; @@ -54,7 +54,7 @@ abstract class AbstractPayload extends Payload { OMElement payloadElement = getPayloadElement(); if (payloadElement != null) { XMLStreamReader streamReader = getStreamReader(payloadElement); - return new StaxSource(streamReader); + return StaxUtils.createCustomStaxSource(streamReader); } else { return null; diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapElement.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapElement.java index b23174df..bfc3b699 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapElement.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapElement.java @@ -24,8 +24,8 @@ import javax.xml.transform.Source; import org.springframework.util.Assert; import org.springframework.util.StringUtils; +import org.springframework.util.xml.StaxUtils; import org.springframework.ws.soap.SoapElement; -import org.springframework.xml.transform.StaxSource; import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; @@ -63,7 +63,7 @@ class AxiomSoapElement implements SoapElement { public final Source getSource() { try { - return new StaxSource(axiomElement.getXMLStreamReader()); + return StaxUtils.createCustomStaxSource(axiomElement.getXMLStreamReader()); } catch (OMException ex) { throw new AxiomSoapElementException(ex); diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/NonCachingPayload.java b/core/src/main/java/org/springframework/ws/soap/axiom/NonCachingPayload.java index 0de7b977..b83b6f2a 100644 --- a/core/src/main/java/org/springframework/ws/soap/axiom/NonCachingPayload.java +++ b/core/src/main/java/org/springframework/ws/soap/axiom/NonCachingPayload.java @@ -24,7 +24,7 @@ import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import javax.xml.transform.Result; -import org.springframework.xml.transform.StaxResult; +import org.springframework.util.xml.StaxUtils; import org.apache.axiom.om.OMDataSource; import org.apache.axiom.om.OMElement; @@ -41,7 +41,6 @@ import org.apache.axiom.soap.SOAPFactory; * @author Arjen Poutsma * @since 1.5.2 */ -@SuppressWarnings("Since15") class NonCachingPayload extends AbstractPayload { private static final int BUF_SIZE = 1024; @@ -52,7 +51,7 @@ class NonCachingPayload extends AbstractPayload { @Override public Result getResultInternal() { - return new StaxResult(new DelegatingStreamWriter()); + return StaxUtils.createCustomStaxResult(new DelegatingStreamWriter()); } @Override diff --git a/core/src/main/java/org/springframework/ws/transport/http/XsdSchemaHandlerAdapter.java b/core/src/main/java/org/springframework/ws/transport/http/XsdSchemaHandlerAdapter.java index afb9cb9e..4f1a6d9f 100644 --- a/core/src/main/java/org/springframework/ws/transport/http/XsdSchemaHandlerAdapter.java +++ b/core/src/main/java/org/springframework/ws/transport/http/XsdSchemaHandlerAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2008 the original author or authors. + * Copyright 2005-2010 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,23 +16,15 @@ package org.springframework.ws.transport.http; -import java.io.File; -import java.net.URI; -import java.net.URISyntaxException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.transform.Source; import javax.xml.transform.Transformer; -import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.w3c.dom.Document; - -import org.springframework.util.StringUtils; import org.springframework.web.servlet.HandlerAdapter; import org.springframework.web.servlet.ModelAndView; import org.springframework.xml.transform.TransformerObjectSupport; -import org.springframework.xml.transform.TraxUtils; import org.springframework.xml.xsd.XsdSchema; /** diff --git a/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java b/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java index df1efd4e..e9411e8b 100644 --- a/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java +++ b/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java @@ -30,6 +30,8 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Result; +import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; @@ -41,9 +43,8 @@ import javax.xml.transform.stream.StreamSource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.util.FileCopyUtils; +import org.springframework.util.xml.StaxUtils; import org.springframework.xml.sax.SaxUtils; -import org.springframework.xml.transform.StaxResult; -import org.springframework.xml.transform.StaxSource; import org.springframework.xml.transform.StringResult; import org.custommonkey.xmlunit.XMLUnit; @@ -96,16 +97,15 @@ public abstract class AbstractWebServiceMessageTestCase { } @Test - @SuppressWarnings("Since15") public void testEventReaderPayload() throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLEventReader eventReader = inputFactory.createXMLEventReader(payload.getInputStream()); - StaxSource staxSource = new StaxSource(eventReader); + Source staxSource = StaxUtils.createCustomStaxSource(eventReader); transformer.transform(staxSource, webServiceMessage.getPayloadResult()); StringWriter stringWriter = new StringWriter(); XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(stringWriter); - StaxResult staxResult = new StaxResult(eventWriter); + Result staxResult = StaxUtils.createCustomStaxResult(eventWriter); transformer.transform(webServiceMessage.getPayloadSource(), staxResult); eventWriter.flush(); assertXMLEqual(getExpectedString(), stringWriter.toString()); @@ -147,16 +147,15 @@ public abstract class AbstractWebServiceMessageTestCase { } @Test - @SuppressWarnings("Since15") public void testStreamReaderPayload() throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLStreamReader streamReader = inputFactory.createXMLStreamReader(payload.getInputStream()); - StaxSource staxSource = new StaxSource(streamReader); + Source staxSource = StaxUtils.createCustomStaxSource(streamReader); transformer.transform(staxSource, webServiceMessage.getPayloadResult()); StringWriter stringWriter = new StringWriter(); XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(stringWriter); - StaxResult staxResult = new StaxResult(streamWriter); + Result staxResult = StaxUtils.createCustomStaxResult(streamWriter); transformer.transform(webServiceMessage.getPayloadSource(), staxResult); streamWriter.flush(); assertXMLEqual(getExpectedString(), stringWriter.toString()); diff --git a/core/src/test/java/org/springframework/ws/server/endpoint/AbstractEndpointTestCase.java b/core/src/test/java/org/springframework/ws/server/endpoint/AbstractEndpointTestCase.java index 6db78b64..feee526f 100644 --- a/core/src/test/java/org/springframework/ws/server/endpoint/AbstractEndpointTestCase.java +++ b/core/src/test/java/org/springframework/ws/server/endpoint/AbstractEndpointTestCase.java @@ -30,7 +30,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamSource; -import org.springframework.xml.transform.StaxSource; +import org.springframework.util.xml.StaxUtils; import org.junit.Test; import org.w3c.dom.Document; @@ -71,14 +71,14 @@ public abstract class AbstractEndpointTestCase { public void testStaxSourceEventReader() throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(REQUEST)); - testSource(new StaxSource(eventReader)); + testSource(new SAXSource(StaxUtils.createXMLReader(eventReader), new InputSource())); } @Test public void testStaxSourceStreamReader() throws Exception { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(REQUEST)); - testSource(new StaxSource(streamReader)); + testSource(new SAXSource(StaxUtils.createXMLReader(streamReader), new InputSource())); } @Test diff --git a/core/src/test/java/org/springframework/ws/server/endpoint/XomPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/server/endpoint/XomPayloadEndpointTest.java index 49f9fddc..8e79df8e 100644 --- a/core/src/test/java/org/springframework/ws/server/endpoint/XomPayloadEndpointTest.java +++ b/core/src/test/java/org/springframework/ws/server/endpoint/XomPayloadEndpointTest.java @@ -61,11 +61,12 @@ public class XomPayloadEndpointTest extends AbstractPayloadEndpointTestCase { @Override public void testStaxSourceEventReader() throws Exception { - // overriden, because XOM doesn not support it + // overriden, because XOM doesn't not support it } - public void testStaxSourceEventReaderJaxp14() throws Exception { - // overriden, because XOM doesn not support it + @Override + public void testStaxSourceStreamReader() throws Exception { + // overriden, because XOM doesn't not support it } } diff --git a/core/src/test/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessorTest.java b/core/src/test/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessorTest.java index 31775be3..16cb6735 100644 --- a/core/src/test/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessorTest.java +++ b/core/src/test/java/org/springframework/ws/server/endpoint/adapter/method/SourcePayloadMethodProcessorTest.java @@ -25,11 +25,9 @@ import javax.xml.transform.stream.StreamSource; import org.springframework.core.MethodParameter; import org.springframework.ws.server.endpoint.annotation.RequestPayload; import org.springframework.ws.server.endpoint.annotation.ResponsePayload; -import org.springframework.xml.transform.StaxSource; import org.springframework.xml.transform.StringSource; /** @author Arjen Poutsma */ -@SuppressWarnings("Since15") public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProcessorTestCase { @Override @@ -41,20 +39,18 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce protected MethodParameter[] createSupportedParameters() throws NoSuchMethodException { return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), 0), new MethodParameter(getClass().getMethod("dom", DOMSource.class), 0), - new MethodParameter(getClass().getMethod("stax1", StaxSource.class), 0), new MethodParameter(getClass().getMethod("sax", SAXSource.class), 0), new MethodParameter(getClass().getMethod("stream", StreamSource.class), 0), - new MethodParameter(getClass().getMethod("stax2", StAXSource.class), 0)}; + new MethodParameter(getClass().getMethod("stax", StAXSource.class), 0)}; } @Override protected MethodParameter[] createSupportedReturnTypes() throws NoSuchMethodException { return new MethodParameter[]{new MethodParameter(getClass().getMethod("source", Source.class), -1), new MethodParameter(getClass().getMethod("dom", DOMSource.class), -1), - new MethodParameter(getClass().getMethod("stax1", StaxSource.class), -1), new MethodParameter(getClass().getMethod("sax", SAXSource.class), -1), new MethodParameter(getClass().getMethod("stream", StreamSource.class), -1), - new MethodParameter(getClass().getMethod("stax2", StAXSource.class), -1)}; + new MethodParameter(getClass().getMethod("stax", StAXSource.class), -1)}; } @Override @@ -72,11 +68,6 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce return source; } - @ResponsePayload - public StaxSource stax1(@RequestPayload StaxSource source) { - return source; - } - @ResponsePayload public SAXSource sax(@RequestPayload SAXSource source) { return source; @@ -88,7 +79,7 @@ public class SourcePayloadMethodProcessorTest extends AbstractPayloadMethodProce } @ResponsePayload - public StAXSource stax2(@RequestPayload StAXSource source) { + public StAXSource stax(@RequestPayload StAXSource source) { return source; } } diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java index 864222d8..63a61d6d 100644 --- a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageFactoryTest.java @@ -118,8 +118,7 @@ public class AxiomSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryT ""; InputStream inputStream = new ByteArrayInputStream(envelope.getBytes("UTF-8")); - AxiomSoapMessage message = - (AxiomSoapMessage) messageFactory.createWebServiceMessage(new MockTransportInputStream(inputStream)); + AxiomSoapMessage message = messageFactory.createWebServiceMessage(new MockTransportInputStream(inputStream)); StringResult result = new StringResult(); transformer.transform(message.getPayloadSource(), result); diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/NonCachingPayloadTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/NonCachingPayloadTest.java index 83643f13..efdb1862 100644 --- a/core/src/test/java/org/springframework/ws/soap/axiom/NonCachingPayloadTest.java +++ b/core/src/test/java/org/springframework/ws/soap/axiom/NonCachingPayloadTest.java @@ -19,7 +19,7 @@ package org.springframework.ws.soap.axiom; import java.io.StringWriter; import javax.xml.stream.XMLStreamWriter; -import org.springframework.xml.transform.StaxResult; +import org.springframework.util.xml.StaxUtils; import org.apache.axiom.soap.SOAPBody; import org.apache.axiom.soap.SOAPFactory; @@ -45,8 +45,7 @@ public class NonCachingPayloadTest { @Test public void testDelegatingStreamWriter() throws Exception { - StaxResult result = (StaxResult) payload.getResult(); - XMLStreamWriter streamWriter = result.getXMLStreamWriter(); + XMLStreamWriter streamWriter = StaxUtils.getXMLStreamWriter(payload.getResult()); String namespace = "http://springframework.org/spring-ws"; streamWriter.setDefaultNamespace(namespace); @@ -69,8 +68,7 @@ public class NonCachingPayloadTest { @Test public void testDelegatingStreamWriterWriteEndDocument() throws Exception { - StaxResult result = (StaxResult) payload.getResult(); - XMLStreamWriter streamWriter = result.getXMLStreamWriter(); + XMLStreamWriter streamWriter = StaxUtils.getXMLStreamWriter(payload.getResult()); String namespace = "http://springframework.org/spring-ws"; streamWriter.setDefaultNamespace(namespace); @@ -92,8 +90,7 @@ public class NonCachingPayloadTest { @Test public void testDelegatingStreamWriterWriteEmptyElement() throws Exception { - StaxResult result = (StaxResult) payload.getResult(); - XMLStreamWriter streamWriter = result.getXMLStreamWriter(); + XMLStreamWriter streamWriter = StaxUtils.getXMLStreamWriter(payload.getResult()); String namespace = "http://springframework.org/spring-ws"; streamWriter.setDefaultNamespace(namespace);