From 5dc32173539f4571ddd636dab2b03d5460343116 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 30 Sep 2019 23:27:02 +0200 Subject: [PATCH] Share TestModel schema context Even if this takes a few milliseconds, it is useful to share the the context (as is invariable). Change-Id: I790932ddbd13c5a12cce27f941785a389b8bb7d8 Signed-off-by: Robert Varga --- .../dom/broker/AbstractDatastoreTest.java | 27 +++++++++++++++++++ .../mdsal/dom/broker/DOMBrokerTest.java | 9 +++---- .../broker/DOMDataTreeChangeListenerTest.java | 4 +-- .../dom/broker/DOMDataTreeListenerTest.java | 9 +++---- .../dom/broker/DOMTransactionChainTest.java | 9 +++---- ...rdedDOMDataTreeProducerMultiShardTest.java | 5 +--- .../dom/broker/ShardedDOMDataTreeTest.java | 5 +--- .../mdsal/dom/broker/util/TestModel.java | 4 +-- 8 files changed, 42 insertions(+), 30 deletions(-) create mode 100644 dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDatastoreTest.java diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDatastoreTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDatastoreTest.java new file mode 100644 index 0000000000..66459be9d5 --- /dev/null +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/AbstractDatastoreTest.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * 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.mdsal.dom.broker; + +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.opendaylight.mdsal.dom.broker.util.TestModel; +import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; + +public abstract class AbstractDatastoreTest { + static EffectiveModelContext SCHEMA_CONTEXT; + + @BeforeClass + public static void beforeClass() { + SCHEMA_CONTEXT = TestModel.createTestContext(); + } + + @AfterClass + public static void afterClass() { + SCHEMA_CONTEXT = null; + } +} diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java index b9c7ad5657..f4ed7f182b 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMBrokerTest.java @@ -47,11 +47,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class DOMBrokerTest { +public class DOMBrokerTest extends AbstractDatastoreTest { - private SchemaContext schemaContext; private AbstractDOMDataBroker domBroker; private ListeningExecutorService executor; private ExecutorService futureExecutor; @@ -63,10 +61,9 @@ public class DOMBrokerTest { MoreExecutors.newDirectExecutorService()); final InMemoryDOMDataStore configStore = new InMemoryDOMDataStore("CFG", MoreExecutors.newDirectExecutorService()); - schemaContext = TestModel.createTestContext(); - operStore.onGlobalContextUpdated(schemaContext); - configStore.onGlobalContextUpdated(schemaContext); + operStore.onGlobalContextUpdated(SCHEMA_CONTEXT); + configStore.onGlobalContextUpdated(SCHEMA_CONTEXT); final ImmutableMap stores = ImmutableMap.builder() diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeChangeListenerTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeChangeListenerTest.java index 681d88ad29..3fa4e3eabb 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeChangeListenerTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeChangeListenerTest.java @@ -35,14 +35,14 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -public class DOMDataTreeChangeListenerTest { +public class DOMDataTreeChangeListenerTest extends AbstractDatastoreTest { private InMemoryDOMDataStore domStore; @Before public void setUp() { domStore = new InMemoryDOMDataStore("Mdsal217", MoreExecutors.newDirectExecutorService()); - domStore.onGlobalContextUpdated(TestModel.createTestContext()); + domStore.onGlobalContextUpdated(SCHEMA_CONTEXT); } @Test diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java index 83f1a7c56c..9c5848ca22 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java @@ -52,11 +52,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNod import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class DOMDataTreeListenerTest { +public class DOMDataTreeListenerTest extends AbstractDatastoreTest { - private SchemaContext schemaContext; private AbstractDOMDataBroker domBroker; private ListeningExecutorService executor; private ExecutorService futureExecutor; @@ -94,10 +92,9 @@ public class DOMDataTreeListenerTest { MoreExecutors.newDirectExecutorService()); final InMemoryDOMDataStore configStore = new InMemoryDOMDataStore("CFG", MoreExecutors.newDirectExecutorService()); - schemaContext = TestModel.createTestContext(); - operStore.onGlobalContextUpdated(schemaContext); - configStore.onGlobalContextUpdated(schemaContext); + operStore.onGlobalContextUpdated(SCHEMA_CONTEXT); + configStore.onGlobalContextUpdated(SCHEMA_CONTEXT); final ImmutableMap stores = ImmutableMap.builder() diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMTransactionChainTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMTransactionChainTest.java index 4d5ac7beb4..28a5539956 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMTransactionChainTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMTransactionChainTest.java @@ -34,11 +34,9 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class DOMTransactionChainTest { +public class DOMTransactionChainTest extends AbstractDatastoreTest { - private SchemaContext schemaContext; private AbstractDOMDataBroker domBroker; @Before @@ -47,10 +45,9 @@ public class DOMTransactionChainTest { MoreExecutors.newDirectExecutorService()); final InMemoryDOMDataStore configStore = new InMemoryDOMDataStore("CFG", MoreExecutors.newDirectExecutorService()); - schemaContext = TestModel.createTestContext(); - operStore.onGlobalContextUpdated(schemaContext); - configStore.onGlobalContextUpdated(schemaContext); + operStore.onGlobalContextUpdated(SCHEMA_CONTEXT); + configStore.onGlobalContextUpdated(SCHEMA_CONTEXT); final ImmutableMap stores = ImmutableMap.builder() diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducerMultiShardTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducerMultiShardTest.java index 16effa10bb..25bc4b2bf9 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducerMultiShardTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducerMultiShardTest.java @@ -55,11 +55,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class ShardedDOMDataTreeProducerMultiShardTest { - - private static final SchemaContext SCHEMA_CONTEXT = TestModel.createTestContext(); +public class ShardedDOMDataTreeProducerMultiShardTest extends AbstractDatastoreTest { private static final DOMDataTreeIdentifier ROOT_ID = new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.empty()); diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeTest.java index f75fd31696..c50438cabb 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeTest.java @@ -57,11 +57,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapNodeBuilder; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -public class ShardedDOMDataTreeTest { - - private static final SchemaContext SCHEMA_CONTEXT = TestModel.createTestContext(); +public class ShardedDOMDataTreeTest extends AbstractDatastoreTest { private static final DOMDataTreeIdentifier ROOT_ID = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.empty()); diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/util/TestModel.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/util/TestModel.java index 799a3e841b..6b4ba0d809 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/util/TestModel.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/util/TestModel.java @@ -9,7 +9,7 @@ package org.opendaylight.mdsal.dom.broker.util; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -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 TestModel { @@ -49,7 +49,7 @@ public final class TestModel { throw new UnsupportedOperationException(); } - public static SchemaContext createTestContext() { + public static EffectiveModelContext createTestContext() { return YangParserTestUtils.parseYangResource("/odl-datastore-test.yang"); } } -- 2.36.6