While the context is small, it is also invariant across a number of
test cases, each of which is instantiating it. Just share one
instance across all tests to speed them up.
While we are at it, we switch to using EffectiveModelContext to
ease our future migration.
Change-Id: I29a89e93903e7582bde4984828405aa2a8e45c27
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
package org.opendaylight.controller.md.cluster.datastore.model;
import java.io.InputStream;
package org.opendaylight.controller.md.cluster.datastore.model;
import java.io.InputStream;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
public final class SchemaContextHelper {
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
public final class SchemaContextHelper {
public static final String PEOPLE_YANG = "/people.yang";
public static final String CARS_YANG = "/cars.yang";
public static final String PEOPLE_YANG = "/people.yang";
public static final String CARS_YANG = "/cars.yang";
+ private static volatile EffectiveModelContext FULL;
+
private SchemaContextHelper() {
}
private SchemaContextHelper() {
}
return SchemaContextHelper.class.getResourceAsStream(yangFileName);
}
return SchemaContextHelper.class.getResourceAsStream(yangFileName);
}
- public static SchemaContext full() {
- return select(ODL_DATASTORE_TEST_YANG, PEOPLE_YANG, 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;
- public static SchemaContext select(final String... schemaFiles) {
+ public static EffectiveModelContext select(final String... schemaFiles) {
return YangParserTestUtils.parseYangResources(SchemaContextHelper.class, schemaFiles);
}
return YangParserTestUtils.parseYangResources(SchemaContextHelper.class, schemaFiles);
}
- public static SchemaContext distributedShardedDOMDataTreeSchemaContext() {
+ 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,
// we need prefix-shard-configuration and odl-datastore-test models
// for DistributedShardedDOMDataTree tests
return YangParserTestUtils.parseYangResources(SchemaContextHelper.class, ODL_DATASTORE_TEST_YANG,