X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fcluster%2Fdatastore%2Fmodel%2FSchemaContextHelper.java;h=0e421b1bc6065225622ad088afb96e8c8f1f419e;hb=abaef4a5ae37f27542155457fe7306a4662b1eeb;hp=33957388463fd6225feb57ce1135364ee90d2551;hpb=11e9ade9af527aba7faeb633d3c9c7552fd09d2d;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/SchemaContextHelper.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/SchemaContextHelper.java index 3395738846..0e421b1bc6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/SchemaContextHelper.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/SchemaContextHelper.java @@ -5,33 +5,50 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.md.cluster.datastore.model; -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.ArrayList; -import java.util.List; -import java.util.Set; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; + +public final class SchemaContextHelper { + + public static final String ODL_DATASTORE_TEST_YANG = "/odl-datastore-test.yang"; + public static final String PEOPLE_YANG = "/people.yang"; + public static final String CARS_YANG = "/cars.yang"; + + private static volatile EffectiveModelContext FULL; -public class SchemaContextHelper { + private SchemaContextHelper() { + + } public static InputStream getInputStream(final String yangFileName) { - return TestModel.class.getResourceAsStream(yangFileName); + return SchemaContextHelper.class.getResourceAsStream(yangFileName); } - public static SchemaContext full(){ - YangParserImpl parser = new YangParserImpl(); - List streams = new ArrayList<>(); - streams.add(getInputStream("/odl-datastore-test.yang")); - streams.add(getInputStream("/people.yang")); - streams.add(getInputStream("/cars.yang")); + public static EffectiveModelContext full() { + EffectiveModelContext ret = FULL; + if (ret == null) { + synchronized (SchemaContextHelper.class) { + ret = FULL; + if (ret == null) { + ret = FULL = select(ODL_DATASTORE_TEST_YANG, PEOPLE_YANG, CARS_YANG); + } + } + } + + return ret; + } - Set modules = parser.parseYangModelsFromStreams(streams); - return parser.resolveSchemaContext(modules); + public static EffectiveModelContext select(final String... schemaFiles) { + return YangParserTestUtils.parseYangResources(SchemaContextHelper.class, schemaFiles); + } + public static EffectiveModelContext distributedShardedDOMDataTreeSchemaContext() { + // we need prefix-shard-configuration and odl-datastore-test models + // for DistributedShardedDOMDataTree tests + return YangParserTestUtils.parseYangResources(SchemaContextHelper.class, ODL_DATASTORE_TEST_YANG, + "/META-INF/yang/prefix-shard-configuration@2017-01-10.yang"); } }