X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frest%2Fimpl%2FXmlToCompositeNodeReader.java;h=c9a09552adf331b85a123131733507abfcb629a5;hp=5944d6003e9e1e33dba8a0b482a60de5f01ac4c0;hb=3927509ec3ecfa32a51b725d2b7155d425f5b877;hpb=8e42b08cb626a60919c145b2a46d94114c3905d6 diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java index 5944d6003e..c9a09552ad 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/XmlToCompositeNodeReader.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.sal.rest.impl; import static com.google.common.base.Preconditions.checkArgument; - import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; @@ -28,9 +27,16 @@ import org.opendaylight.controller.sal.restconf.impl.NodeWrapper; import org.opendaylight.controller.sal.restconf.impl.SimpleNodeWrapper; import org.opendaylight.yangtools.yang.data.api.Node; +/** + * @deprecated class will be removed in Lithium release + */ +@Deprecated public class XmlToCompositeNodeReader { private final static XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); + static { + xmlInputFactory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); + } private XMLEventReader eventReader; public Node read(InputStream entityStream) throws XMLStreamException, @@ -45,9 +51,8 @@ public class XmlToCompositeNodeReader { } eventReader = xmlInputFactory.createXMLEventReader(entityStream); - if (eventReader.hasNext()) { - XMLEvent element = eventReader.peek(); + final XMLEvent element = eventReader.peek(); if (element.isStartDocument()) { eventReader.nextEvent(); } @@ -110,7 +115,7 @@ public class XmlToCompositeNodeReader { return entityStream; } - private boolean isInputStreamEmpty(InputStream entityStream) throws IOException { + private boolean isInputStreamEmpty(final InputStream entityStream) throws IOException { boolean isEmpty = false; entityStream.mark(1); if (entityStream.read() == -1) { @@ -123,7 +128,7 @@ public class XmlToCompositeNodeReader { private boolean isSimpleNodeEvent(final XMLEvent event) throws XMLStreamException { checkArgument(event != null, "XML Event cannot be NULL!"); if (event.isStartElement()) { - XMLEvent innerEvent = skipCommentsAndWhitespace(); + final XMLEvent innerEvent = skipCommentsAndWhitespace(); if (innerEvent != null && (innerEvent.isCharacters() || innerEvent.isEndElement())) { return true; } @@ -134,7 +139,7 @@ public class XmlToCompositeNodeReader { private boolean isCompositeNodeEvent(final XMLEvent event) throws XMLStreamException { checkArgument(event != null, "XML Event cannot be NULL!"); if (event.isStartElement()) { - XMLEvent innerEvent = skipCommentsAndWhitespace(); + final XMLEvent innerEvent = skipCommentsAndWhitespace(); if (innerEvent != null) { if (innerEvent.isStartElement()) { return true; @@ -146,14 +151,14 @@ public class XmlToCompositeNodeReader { private XMLEvent skipCommentsAndWhitespace() throws XMLStreamException { while (eventReader.hasNext()) { - XMLEvent event = eventReader.peek(); + final XMLEvent event = eventReader.peek(); if (event.getEventType() == XMLStreamConstants.COMMENT) { eventReader.nextEvent(); continue; } if (event.isCharacters()) { - Characters chars = event.asCharacters(); + final Characters chars = event.asCharacters(); if (chars.isWhiteSpace()) { eventReader.nextEvent(); continue; @@ -172,7 +177,7 @@ public class XmlToCompositeNodeReader { private NodeWrapper> resolveSimpleNodeFromStartElement(final StartElement startElement) throws XMLStreamException { checkArgument(startElement != null, "Start Element cannot be NULL!"); - String data = getValueOf(startElement); + final String data = getValueOf(startElement); if (data == null) { return new EmptyNodeWrapper(getNamespaceFor(startElement), getLocalNameFor(startElement)); } @@ -180,7 +185,7 @@ public class XmlToCompositeNodeReader { resolveValueOfElement(data, startElement)); } - private String getValueOf(StartElement startElement) throws XMLStreamException { + private String getValueOf(final StartElement startElement) throws XMLStreamException { String data = null; if (eventReader.hasNext()) { final XMLEvent innerEvent = eventReader.peek(); @@ -201,7 +206,7 @@ public class XmlToCompositeNodeReader { return data == null ? null : data.trim(); } - private String getAdditionalData(XMLEvent event) throws XMLStreamException { + private String getAdditionalData(final XMLEvent event) throws XMLStreamException { String data = ""; if (eventReader.hasNext()) { final XMLEvent innerEvent = eventReader.peek(); @@ -216,28 +221,28 @@ public class XmlToCompositeNodeReader { return data; } - private String getLocalNameFor(StartElement startElement) { + private String getLocalNameFor(final StartElement startElement) { return startElement.getName().getLocalPart(); } - private URI getNamespaceFor(StartElement startElement) { - String namespaceURI = startElement.getName().getNamespaceURI(); + private URI getNamespaceFor(final StartElement startElement) { + final String namespaceURI = startElement.getName().getNamespaceURI(); return namespaceURI.isEmpty() ? null : URI.create(namespaceURI); } - private Object resolveValueOfElement(String value, StartElement startElement) { + private Object resolveValueOfElement(final String value, final StartElement startElement) { // it could be instance-identifier Built-In Type if (value.startsWith("/")) { - IdentityValuesDTO iiValue = RestUtil.asInstanceIdentifier(value, new RestUtil.PrefixMapingFromXml( + final IdentityValuesDTO iiValue = RestUtil.asInstanceIdentifier(value, new RestUtil.PrefixMapingFromXml( startElement)); if (iiValue != null) { return iiValue; } } // it could be identityref Built-In Type - String[] namespaceAndValue = value.split(":"); + final String[] namespaceAndValue = value.split(":"); if (namespaceAndValue.length == 2) { - String namespace = startElement.getNamespaceContext().getNamespaceURI(namespaceAndValue[0]); + final String namespace = startElement.getNamespaceContext().getNamespaceURI(namespaceAndValue[0]); if (namespace != null && !namespace.isEmpty()) { return new IdentityValuesDTO(namespace, namespaceAndValue[1], namespaceAndValue[0], value); }