X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fmodel-loader.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fmodel%2FModelArtifactParser.java;fp=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fmodel%2FModelArtifactParser.java;h=de99880e93a1f2d26151772000f26a1bda9eccb7;hp=adab6dfd645528fffba1facbbd47bc168d90478d;hb=93a7defb8a10ac29f97d3cfd860ca12a629bdc41;hpb=8204d232f8cc37e28561ee18b60806c7b3f5f783 diff --git a/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactParser.java b/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactParser.java index adab6df..de99880 100644 --- a/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactParser.java +++ b/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactParser.java @@ -20,11 +20,19 @@ */ package org.onap.aai.modelloader.entity.model; +import java.io.StringWriter; import java.util.List; import java.util.Objects; import java.util.stream.Collector; import java.util.stream.IntStream; import javax.xml.XMLConstants; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + import org.onap.aai.cl.api.Logger; import org.onap.aai.cl.eelf.LoggerFactory; import org.onap.aai.modelloader.entity.Artifact; @@ -53,7 +61,13 @@ public class ModelArtifactParser extends AbstractModelArtifactParser { parseRelationshipNode(node, model); } else { if (node.getNodeName().equalsIgnoreCase(MODEL_VER)) { - ((ModelArtifact) model).setModelVer(node); + String modelVersion; + try { + modelVersion = nodeToString(node); + ((ModelArtifact) model).setModelVer(modelVersion); + } catch (TransformerException e) { + logger.error(ModelLoaderMsgs.ARTIFACT_PARSE_ERROR, "Failed to parse resource version for input: " + node.toString()); + } if (((ModelArtifact) model).getModelNamespace() != null && !((ModelArtifact) model).getModelNamespace().isEmpty()) { Element e = (Element) node; @@ -66,6 +80,18 @@ public class ModelArtifactParser extends AbstractModelArtifactParser { } } + private String nodeToString(Node node) throws TransformerException { + StringWriter sw = new StringWriter(); + TransformerFactory transFact = TransformerFactory.newInstance(); + transFact.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); + transFact.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + transFact.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); + Transformer t = transFact.newTransformer(); + t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + t.transform(new DOMSource(node), new StreamResult(sw)); + return sw.toString(); + } + /** * {@inheritDoc} */