import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Optional;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import javax.xml.transform.dom.DOMSource;
import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
-import org.opendaylight.restconf.common.context.NormalizedNodeContext;
+import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.common.YangConstants;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
return schemaContext;
}
- public static NormalizedNodeContext loadNormalizedContextFromJsonFile() {
- throw new AbstractMethodError("Not implemented yet");
- }
-
@SuppressWarnings("checkstyle:IllegalCatch")
- public static NormalizedNodeContext loadNormalizedContextFromXmlFile(final String pathToInputFile,
+ public static NormalizedNodePayload loadNormalizedContextFromXmlFile(final String pathToInputFile,
final String uri, final EffectiveModelContext schemaContext) {
- final InstanceIdentifierContext<?> iiContext =
+ final InstanceIdentifierContext iiContext =
ParserIdentifier.toInstanceIdentifier(uri, schemaContext, Optional.empty());
final InputStream inputStream = TestRestconfUtils.class.getResourceAsStream(pathToInputFile);
try {
final Document doc = UntrustedXML.newDocumentBuilder().parse(inputStream);
- final NormalizedNode<?, ?> nn = parse(iiContext, doc);
- return new NormalizedNodeContext(iiContext, nn);
+ final NormalizedNode nn = parse(iiContext, doc);
+ return NormalizedNodePayload.of(iiContext, nn);
} catch (final Exception e) {
- LOG.error("Load xml file " + pathToInputFile + " fail.", e);
+ LOG.error("Load xml file {} fail.", pathToInputFile, e);
}
return null;
}
- private static NormalizedNode<?, ?> parse(final InstanceIdentifierContext<?> iiContext, final Document doc)
+ private static NormalizedNode parse(final InstanceIdentifierContext iiContext, final Document doc)
throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException {
final SchemaNode schemaNodeContext = iiContext.getSchemaNode();
DataSchemaNode schemaNode = null;
final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
- final XmlParserStream xmlParser = XmlParserStream.create(writer, iiContext.getSchemaContext(), schemaNode);
+ final XmlParserStream xmlParser = XmlParserStream.create(writer,
+ SchemaInferenceStack.ofInstantiatedPath(iiContext.getSchemaContext(), schemaNode.getPath()).toInference());
if (schemaNode instanceof ContainerSchemaNode || schemaNode instanceof ListSchemaNode) {
xmlParser.traverse(new DOMSource(doc.getDocumentElement()));
return null;
}
- public static Collection<File> loadFiles(final String resourceDirectory) throws FileNotFoundException {
+ public static List<File> loadFiles(final String resourceDirectory) throws FileNotFoundException {
final String path = TestRestconfUtils.class.getResource(resourceDirectory).getPath();
final File testDir = new File(path);
final String[] fileList = testDir.list();
throw new FileNotFoundException(resourceDirectory);
}
for (final String fileName : fileList) {
- if (new File(testDir, fileName).isDirectory() == false) {
+ if (fileName.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION)
+ && !new File(testDir, fileName).isDirectory()) {
testFiles.add(new File(testDir, fileName));
}
}