Extract modules directly from EffectiveModelContext 85/107085/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 26 Jul 2023 15:26:41 +0000 (17:26 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 27 Jul 2023 09:18:50 +0000 (11:18 +0200)
We are ignoring the value passed into mapModulesByIetfYangLibraryYang(),
remove the argument and let the method pick up modules from there.

Change-Id: I81a09a7c30cb9e5d8bade1f9b7d9f7da04059011
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/legacy/SchemaContextHandler.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/monitoring/RestconfStateStreamsTest.java

index 46e608a3bb1bc3aa5c35aaf428915071ee5165b1..7c33f2b0c257d80b174d36ce192e10020f86c014 100644 (file)
@@ -48,9 +48,7 @@ import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppl
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener;
 import org.opendaylight.yangtools.yang.model.api.FeatureDefinition;
-import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
@@ -106,8 +104,7 @@ public final class SchemaContextHandler implements EffectiveModelContextListener
         schemaContext = requireNonNull(context);
 
         if (context.findModuleStatement(IetfYangLibrary.MODULE_QNAME).isPresent()) {
-            putData(mapModulesByIetfYangLibraryYang(context.getModules(), context,
-                String.valueOf(moduleSetId.incrementAndGet())));
+            putData(mapModulesByIetfYangLibraryYang(context, String.valueOf(moduleSetId.incrementAndGet())));
         }
     }
 
@@ -145,14 +142,13 @@ public final class SchemaContextHandler implements EffectiveModelContextListener
     /**
      * Map data from modules to {@link NormalizedNode}.
      *
-     * @param modules modules for mapping
      * @param context schema context
      * @param moduleSetId module-set-id of actual set
      * @return mapped data as {@link NormalizedNode}
      */
     @VisibleForTesting
-    public static ContainerNode mapModulesByIetfYangLibraryYang(final Collection<? extends Module> modules,
-            final SchemaContext context, final String moduleSetId) {
+    public static ContainerNode mapModulesByIetfYangLibraryYang(final EffectiveModelContext context,
+            final String moduleSetId) {
         final var mapBuilder = Builders.mapBuilder()
             .withNodeIdentifier(new NodeIdentifier(IetfYangLibrary.MODULE_QNAME_LIST));
         for (var module : context.getModules()) {
@@ -175,7 +171,8 @@ public final class SchemaContextHandler implements EffectiveModelContextListener
      * @param context schema context
      */
     private static void fillMapByModules(final CollectionNodeBuilder<MapEntryNode, SystemMapNode> mapBuilder,
-            final QName mapQName, final boolean isSubmodule, final ModuleLike module, final SchemaContext context) {
+            final QName mapQName, final boolean isSubmodule, final ModuleLike module,
+            final EffectiveModelContext context) {
         final var mapEntryBuilder = newCommonLeafsMapEntryBuilder(mapQName, module);
 
         mapEntryBuilder.withChild(ImmutableNodes.leafNode(MODULE_SCHEMA_NODEID,
@@ -219,7 +216,7 @@ public final class SchemaContextHandler implements EffectiveModelContextListener
      */
     private static void addSubmodules(final ModuleLike module,
             final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
-            final SchemaContext context) {
+            final EffectiveModelContext context) {
         final var mapBuilder = Builders.mapBuilder()
             .withNodeIdentifier(new NodeIdentifier(Submodule.QNAME));
 
@@ -241,7 +238,7 @@ public final class SchemaContextHandler implements EffectiveModelContextListener
      */
     private static void addDeviationList(final ModuleLike module,
             final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
-            final SchemaContext context) {
+            final EffectiveModelContext context) {
         final var deviations = Builders.mapBuilder()
             .withNodeIdentifier(new NodeIdentifier(Deviation.QNAME));
         for (var deviation : module.getDeviations()) {
index 863c477920c2423dfcd18065231024a1214c846f..234eab97b937a5c8717e5d56ed8b9c09ff9718c1 100644 (file)
@@ -45,7 +45,6 @@ import org.slf4j.LoggerFactory;
 public class RestconfStateStreamsTest {
     private static final Logger LOG = LoggerFactory.getLogger(RestconfStateStreamsTest.class);
 
-    private static Collection<? extends Module> modules;
     private static EffectiveModelContext schemaContext;
     private static EffectiveModelContext schemaContextMonitoring;
     private static Collection<? extends Module> modulesRest;
@@ -55,7 +54,6 @@ public class RestconfStateStreamsTest {
         // FIXME: assemble these from dependencies
         schemaContext = YangParserTestUtils.parseYangResourceDirectory("/modules/restconf-module-testing");
         schemaContextMonitoring = YangParserTestUtils.parseYangResourceDirectory("/modules");
-        modules = schemaContextMonitoring.getModules();
         modulesRest = YangParserTestUtils
                 .parseYangFiles(TestRestconfUtils.loadFiles("/modules/restconf-module-testing")).getModules();
     }
@@ -67,7 +65,7 @@ public class RestconfStateStreamsTest {
     @Test
     public void restconfMappingNodeTest() {
         // write modules into list module in Restconf
-        final ContainerNode mods = SchemaContextHandler.mapModulesByIetfYangLibraryYang(modules, schemaContext, "1");
+        final ContainerNode mods = SchemaContextHandler.mapModulesByIetfYangLibraryYang(schemaContext, "1");
 
         // verify loaded modules
         verifyLoadedModules(mods);