SWS-639 - Deprecate redundant XML classes

This commit is contained in:
Arjen Poutsma
2010-09-01 10:25:17 +00:00
parent f8a4830543
commit 7d79ad134b
16 changed files with 109 additions and 94 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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;
}
};
}
}
}

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);

View File

@@ -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

View File

@@ -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;
/**