import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public abstract class AbstractYangTest {
protected SchemaContext context;
yangISs.addAll(getConfigApiYangInputStreams());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modulesToBuild = parser.parseYangModelsFromStreams(yangISs);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ context = reactor.buildEffective(yangISs);
// close ISs
for (InputStream is : yangISs) {
is.close();
}
- context = parser.resolveSchemaContext(modulesToBuild);
namesToModules = YangModelSearchUtils.mapModulesByNames(context
.getModules());
configModule = namesToModules.get(ConfigConstants.CONFIG_MODULE);
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.junit.Ignore;
import org.junit.Test;
import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.NameConflictException;
import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
yangISs.addAll(getConfigApiYangInputStreams());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modulesToBuild = parser.parseYangModelsFromStreams(yangISs);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ context = reactor.buildEffective(yangISs);
// close ISs
for (InputStream is : yangISs) {
is.close();
}
- context = parser.resolveSchemaContext(modulesToBuild);
namesToModules = YangModelSearchUtils.mapModulesByNames(context
.getModules());
configModule = namesToModules.get(ConfigConstants.CONFIG_MODULE);
import com.google.common.collect.Lists;
import java.io.InputStream;
import java.util.List;
-import java.util.Set;
import org.junit.Test;
import org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants;
import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntryTest;
import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.YangModelSearchUtils;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class UnknownExtensionTest extends ServiceInterfaceEntryTest {
.getResourceAsStream("test-ifcWithUnknownExtension.yang"));
yangISs.addAll(getConfigApiYangInputStreams());
try {
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modulesToBuild = parser
- .parseYangModelsFromStreams(yangISs);
- context = parser.resolveSchemaContext(modulesToBuild);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ context = reactor.buildEffective(yangISs);
namesToModules = YangModelSearchUtils.mapModulesByNames(context
.getModules());
configModule = namesToModules.get(ConfigConstants.CONFIG_MODULE);
router between event producers and event consumers";
base "config:service-type";
- config:java-class2 "com.google.common.eventbus.EventBus";
+ th:java-class2 "com.google.common.eventbus.EventBus";
}
}
import java.io.InputStream;
import java.util.Collections;
-import java.util.Set;
-
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
/**
* Benchmark Model class loads the odl-datastore-test.yang model from resources.
private static final String DATASTORE_TEST_YANG = "/odl-datastore-test.yang";
public static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST_QNAME);
- public static final YangInstanceIdentifier OUTER_LIST_PATH = YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
-
- public static final InputStream getDatastoreBenchmarkInputStream() {
- return getInputStream(DATASTORE_TEST_YANG);
- }
+ public static final YangInstanceIdentifier OUTER_LIST_PATH =
+ YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
- private static InputStream getInputStream(final String resourceName) {
- return BenchmarkModel.class.getResourceAsStream(resourceName);
+ private static InputStream getInputStream() {
+ return BenchmarkModel.class.getResourceAsStream(DATASTORE_TEST_YANG);
}
public static SchemaContext createTestContext() {
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(Collections.singletonList(
- getDatastoreBenchmarkInputStream()));
- return parser.resolveSchemaContext(modules);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ final List<InputStream> streams = Collections.singletonList(getInputStream());
+
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+ return schemaContext;
}
}
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import java.io.InputStream;
import java.util.Collections;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.junit.After;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
/**
* Test case for reported bug 560
bindingMountPointService = testContext.getBindingMountProviderService();
assertNotNull(domMountPointService);
- final YangContextParser parser = new YangParserImpl();
final InputStream moduleStream = BindingReflections.getModuleInfo(
OpendaylightTestRpcServiceService.class)
.getModuleSourceStream();
assertNotNull(moduleStream);
final List<InputStream> rpcModels = Collections.singletonList(moduleStream);
- final Set<Module> modules = parser.parseYangModelsFromStreams(rpcModels);
- final SchemaContext mountSchemaContext = parser.resolveSchemaContext(modules);
- schemaContext = mountSchemaContext;
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ schemaContext = reactor.buildEffective(rpcModels);
}
private static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier createBITllIdentifier(
@Test
public void test() throws ExecutionException, InterruptedException {
- // FIXME: This is made to only make sure instance identifier codec
- // for path is instantiated.
+ // FIXME: This is made to only make sure instance identifier codec for path is instantiated.
domMountPointService
.createMountPoint(BI_MOUNT_ID).addService(DOMRpcService.class, new DOMRpcService() {
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntry;
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntryBuilder;
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapNodeBuilder;
+
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.io.InputStream;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class TestModel {
private static final String FIRST_GRAND_CHILD_NAME = "first grand child";
private static final String SECOND_GRAND_CHILD_NAME = "second grand child";
-
private static final MapEntryNode BAR_NODE = mapEntryBuilder(
OUTER_LIST_QNAME, ID_QNAME, TWO_ID) //
.withChild(mapNodeBuilder(INNER_LIST_QNAME) //
inputStreams.add(getDatastoreAugInputStream());
inputStreams.add(getDatastoreTestNotificationInputStream());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(inputStreams);
- return parser.resolveSchemaContext(modules);
+ return resolveSchemaContext(inputStreams);
}
public static SchemaContext createTestContextWithoutTestSchema() {
List<InputStream> inputStreams = new ArrayList<>();
inputStreams.add(getDatastoreTestNotificationInputStream());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(inputStreams);
- return parser.resolveSchemaContext(modules);
+ return resolveSchemaContext(inputStreams);
}
inputStreams.add(getDatastoreTestInputStream());
inputStreams.add(getDatastoreTestNotificationInputStream());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(inputStreams);
- return parser.resolveSchemaContext(modules);
+ return resolveSchemaContext(inputStreams);
}
+ private static SchemaContext resolveSchemaContext(List<InputStream> streams) {
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+ return schemaContext;
+ }
/**
* Returns a test document
import com.google.common.io.ByteSource;
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilderFactory;
import org.junit.Before;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
// FIXME : CompositeNode is not avaliable anymore so fix the test to use NormalizedNodeContainer ASAP
public class XmlUtilsTest {
BUILDERFACTORY = factory;
}
- private SchemaContext schema;
+ private SchemaContext schemaContext;
private RpcDefinition testRpc;
public static final String XML_CONTENT = "<add-flow xmlns=\"urn:opendaylight:controller:rpc:test\"><input xmlns=\"urn:opendaylight:controller:rpc:test\">" +
return XmlUtilsTest.this.getClass().getResourceAsStream("rpcTest.yang");
}
};
- schema = new YangParserImpl().parseSources(Lists.newArrayList(byteSource));
- final Module rpcTestModule = schema.getModules().iterator().next();
+
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final ArrayList<ByteSource> sources = Lists.newArrayList(byteSource);
+
+ try {
+
+ schemaContext = reactor.buildEffective(sources);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + sources, e);
+ }
+
+ final Module rpcTestModule = schemaContext.getModules().iterator().next();
testRpc = rpcTestModule.getRpcs().iterator().next();
}
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntry;
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntryBuilder;
import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapNodeBuilder;
+
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashSet;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class CompositeModel {
}
private static InputStream getInputStream(final String resourceName) {
- return TestModel.class.getResourceAsStream(resourceName);
+ return CompositeModel.class.getResourceAsStream(resourceName);
}
public static SchemaContext createTestContext() {
inputStreams.add(getDatastoreAugInputStream());
inputStreams.add(getDatastoreTestNotificationInputStream());
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(inputStreams);
- return parser.resolveSchemaContext(modules);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+
+ try {
+ schemaContext = reactor.buildEffective(inputStreams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + inputStreams, e);
+ }
+ return schemaContext;
}
/**
package org.opendaylight.controller.md.cluster.datastore.model;
+import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.Set;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class SchemaContextHelper {
public static final String CARS_YANG = "/cars.yang";
public static InputStream getInputStream(final String yangFileName) {
- return TestModel.class.getResourceAsStream(yangFileName);
+ return SchemaContextHelper.class.getResourceAsStream(yangFileName);
}
public static SchemaContext full(){
}
public static SchemaContext select(String... schemaFiles){
- YangParserImpl parser = new YangParserImpl();
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
List<InputStream> streams = new ArrayList<>();
for(String schemaFile : schemaFiles){
streams.add(getInputStream(schemaFile));
}
- Set<Module> modules = parser.parseYangModelsFromStreams(streams);
- return parser.resolveSchemaContext(modules);
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+
+ return schemaContext;
}
public static SchemaContext entityOwners() {
- YangParserImpl parser = new YangParserImpl();
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ File file = null;
+
try {
- File file = new File("src/main/yang/entity-owners.yang");
- return parser.parseSources(Arrays.asList(Resources.asByteSource(file.toURI().toURL())));
- } catch (IOException | YangSyntaxErrorException e) {
- throw new ExceptionInInitializerError(e);
+ file = new File("src/main/yang/entity-owners.yang");
+ final List<ByteSource> sources = Arrays.asList(Resources.asByteSource(file.toURI().toURL()));
+ try {
+ schemaContext = reactor.buildEffective(sources);
+ } catch (IOException e1) {
+ throw new ExceptionInInitializerError(e1);
+ } catch (ReactorException e2) {
+ throw new RuntimeException("Unable to build schema context from " + sources, e2);
+ }
+ return schemaContext;
+ } catch (MalformedURLException e3) {
+ throw new RuntimeException("Malformed URL detected in " + file, e3);
}
}
}
*/
package org.opendaylight.controller.md.cluster.datastore.model;
+import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
import java.io.IOException;
-import java.io.InputStream;
import java.util.Collections;
+import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class TestModel {
- public static final QName TEST_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13",
- "test");
+ public static final QName TEST_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test");
- public static final QName TEST2_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13",
- "test2");
+ public static final QName TEST2_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test2");
- public static final QName JUNK_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:junk", "2014-03-13",
- "junk");
+ public static final QName JUNK_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:junk", "2014-03-13", "junk");
public static final QName OUTER_LIST_QNAME = QName.create(TEST_QNAME, "outer-list");
public static final QName TWO_QNAME = QName.create(TEST_QNAME,"two");
public static final QName THREE_QNAME = QName.create(TEST_QNAME,"three");
-
- public static final InputStream getDatastoreTestInputStream() {
- return TestModel.class.getResourceAsStream(DATASTORE_TEST_YANG);
- }
-
public static SchemaContext createTestContext() {
- YangParserImpl parser = new YangParserImpl();
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ final Set<ByteSource> sources = Collections.singleton(Resources.asByteSource(TestModel.class.getResource
+ (DATASTORE_TEST_YANG)));
+
try {
- return parser.parseSources(Collections.singleton(Resources.asByteSource(TestModel.class.getResource(DATASTORE_TEST_YANG))));
- } catch (IOException | YangSyntaxErrorException e) {
- throw new ExceptionInInitializerError(e);
+ schemaContext = reactor.buildEffective(sources);
+ } catch (IOException e1) {
+ throw new ExceptionInInitializerError(e1);
+ } catch (ReactorException e2) {
+ throw new RuntimeException("Unable to build schema context from " + sources, e2);
}
+ return schemaContext;
}
public static DataContainerChild<?, ?> outerNode(int... ids) {
*/
package org.opendaylight.controller.md.sal.dom.store.impl;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
-
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.Set;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class TestModel {
- public static final QName TEST_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13",
- "test");
- public static final QName TEST2_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13",
- "test2");
+ public static final QName TEST_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test");
+ public static final QName TEST2_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test2");
public static final QName OUTER_LIST_QNAME = QName.create(TEST_QNAME, "outer-list");
public static final QName INNER_LIST_QNAME = QName.create(TEST_QNAME, "inner-list");
public static final QName OUTER_CHOICE_QNAME = QName.create(TEST_QNAME, "outer-choice");
public static final QName ID_QNAME = QName.create(TEST_QNAME, "id");
public static final QName NAME_QNAME = QName.create(TEST_QNAME, "name");
public static final QName VALUE_QNAME = QName.create(TEST_QNAME, "value");
- private static final String DATASTORE_TEST_YANG = "/odl-datastore-test.yang";
-
- public static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST_QNAME);
- public static final YangInstanceIdentifier TEST2_PATH = YangInstanceIdentifier.of(TEST2_QNAME);
- public static final YangInstanceIdentifier OUTER_LIST_PATH = YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
public static final QName TWO_QNAME = QName.create(TEST_QNAME,"two");
public static final QName THREE_QNAME = QName.create(TEST_QNAME,"three");
+ public static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST_QNAME);
+ public static final YangInstanceIdentifier TEST2_PATH = YangInstanceIdentifier.of(TEST2_QNAME);
+ public static final YangInstanceIdentifier OUTER_LIST_PATH =
+ YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
+ private static final String DATASTORE_TEST_YANG = "/odl-datastore-test.yang";
-
- public static final InputStream getDatastoreTestInputStream() {
- return getInputStream(DATASTORE_TEST_YANG);
- }
-
- private static InputStream getInputStream(final String resourceName) {
+ private static InputStream getInputStream() {
return TestModel.class.getResourceAsStream(DATASTORE_TEST_YANG);
}
public static SchemaContext createTestContext() {
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(Collections.singletonList(getDatastoreTestInputStream()));
- return parser.resolveSchemaContext(modules);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ final List<InputStream> streams = Collections.singletonList(getInputStream());
+
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+ return schemaContext;
}
}
import java.io.InputStream;
import java.sql.SQLException;
import java.util.Collections;
-import java.util.Set;
-
+import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.opendaylight.controller.md.sal.dom.xsql.XSQLBluePrint;
import org.opendaylight.controller.md.sal.dom.xsql.jdbc.JDBCResultSet;
import org.opendaylight.controller.md.sal.dom.xsql.jdbc.JDBCServer;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class XSQLTest {
private static final String DATASTORE_TEST_YANG = "/sal-persisted-dom-test.yang";
System.out.println(str);
}
- public static final InputStream getDatastoreTestInputStream() {
- return getInputStream(DATASTORE_TEST_YANG);
- }
-
- private static InputStream getInputStream(final String resourceName) {
+ private static InputStream getInputStream() {
return XSQLTest.class.getResourceAsStream(DATASTORE_TEST_YANG);
}
public static SchemaContext createTestContext() {
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(Collections.singletonList(getDatastoreTestInputStream()));
- return parser.resolveSchemaContext(modules);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ final List<InputStream> streams = Collections.singletonList(getInputStream());
+
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+ return schemaContext;
}
}
*/
package org.opendaylight.controller.md.sal.dom.store.impl;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
-
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.Set;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
public class TestModel {
- public static final QName TEST_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13",
- "test");
+ public static final QName TEST_QNAME =
+ QName.create("urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test", "2014-03-13", "test");
public static final QName OUTER_LIST_QNAME = QName.create(TEST_QNAME, "outer-list");
public static final QName INNER_LIST_QNAME = QName.create(TEST_QNAME, "inner-list");
public static final QName OUTER_CHOICE_QNAME = QName.create(TEST_QNAME, "outer-choice");
public static final QName ID_QNAME = QName.create(TEST_QNAME, "id");
public static final QName NAME_QNAME = QName.create(TEST_QNAME, "name");
public static final QName VALUE_QNAME = QName.create(TEST_QNAME, "value");
- private static final String DATASTORE_TEST_YANG = "/odl-datastore-test.yang";
-
- public static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST_QNAME);
- public static final YangInstanceIdentifier OUTER_LIST_PATH = YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
public static final QName TWO_QNAME = QName.create(TEST_QNAME, "two");
public static final QName THREE_QNAME = QName.create(TEST_QNAME, "three");
+ public static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.of(TEST_QNAME);
+ public static final YangInstanceIdentifier OUTER_LIST_PATH =
+ YangInstanceIdentifier.builder(TEST_PATH).node(OUTER_LIST_QNAME).build();
+ private static final String DATASTORE_TEST_YANG = "/odl-datastore-test.yang";
-
- public static final InputStream getDatastoreTestInputStream() {
- return getInputStream(DATASTORE_TEST_YANG);
- }
-
- private static InputStream getInputStream(final String resourceName) {
+ private static InputStream getInputStream() {
return TestModel.class.getResourceAsStream(DATASTORE_TEST_YANG);
}
public static SchemaContext createTestContext() {
- YangParserImpl parser = new YangParserImpl();
- Set<Module> modules = parser.parseYangModelsFromStreams(Collections.singletonList(getDatastoreTestInputStream()));
- return parser.resolveSchemaContext(modules);
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final SchemaContext schemaContext;
+ final List<InputStream> streams = Collections.singletonList(getInputStream());
+
+ try {
+ schemaContext = reactor.buildEffective(streams);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + streams, e);
+ }
+ return schemaContext;
}
}
import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.testkit.JavaTestKit;
-import java.io.File;
+import com.google.common.collect.Lists;
+import com.google.common.io.ByteSource;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.URI;
-import java.util.Arrays;
+import java.util.ArrayList;
import java.util.Collection;
import org.junit.AfterClass;
import org.junit.Before;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
/**
* Base class for RPC tests.
}
@Before
- public void setUp() {
- schemaContext = new YangParserImpl().parseFiles(Arrays.asList(
- new File(RpcBrokerTest.class.getResource("/test-rpc.yang").getPath())));
+ public void setUp() throws Exception {
+ final ByteSource byteSource = new ByteSource() {
+ @Override
+ public InputStream openStream() throws IOException {
+ return AbstractRpcTest.this.getClass().getResourceAsStream("/test-rpc.yang");
+ }
+ };
+
+ final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
+ final ArrayList<ByteSource> sources = Lists.newArrayList(byteSource);
+
+ try {
+ schemaContext = reactor.buildEffective(sources);
+ } catch (ReactorException e) {
+ throw new RuntimeException("Unable to build schema context from " + sources, e);
+ }
domRpcService1 = Mockito.mock(DOMRpcService.class);
domRpcService2 = Mockito.mock(DOMRpcService.class);
remoteRpcImpl1 = new RemoteRpcImplementation(rpcRegistry1Probe.getRef(), config1);
remoteRpcImpl2 = new RemoteRpcImplementation(rpcRegistry2Probe.getRef(), config2);
-
}
static void assertRpcErrorEquals(final RpcError rpcError, final ErrorSeverity severity,