Make test tool expose submodule sources 07/30907/2
authorJakub Morvay <jmorvay@cisco.com>
Mon, 7 Dec 2015 12:38:55 +0000 (13:38 +0100)
committerJakub Morvay <jmorvay@cisco.com>
Tue, 8 Dec 2015 15:55:05 +0000 (15:55 +0000)
Change-Id: If614ee052175f6f1ce60609aa0696788c216c247
Signed-off-by: Jakub Morvay <jmorvay@cisco.com>
opendaylight/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java

index 212385f2943f62799143242a2c0103faddd7dff8..b480f442d92e8a4c72087a6254b69cd32d0a9f4f 100644 (file)
@@ -298,21 +298,27 @@ public class NetconfDeviceSimulator implements Closeable {
         final Set<Capability> capabilities = Sets.newHashSet();
 
         for (final Module module : schemaContext.getModules()) {
-            final SourceIdentifier moduleSourceIdentifier = new SourceIdentifier(module.getName(),
-                    SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()));
-            try {
-                String moduleContent = new String(consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class)
-                        .checkedGet().read());
-                capabilities.add(new YangModuleCapability(module, moduleContent));
-                //IOException would be thrown in creating SchemaContext already
-            } catch (SchemaSourceException|IOException e) {
-                throw new RuntimeException("Cannot retrieve schema source for module " + moduleSourceIdentifier.toString() + " from schema repository", e);
+            for (final Module subModule : module.getSubmodules()) {
+                addModuleCapability(consumer, capabilities, subModule);
             }
+            addModuleCapability(consumer, capabilities, module);
         }
-
         return capabilities;
     }
 
+    private void addModuleCapability(SharedSchemaRepository consumer, Set<Capability> capabilities, Module module) {
+        final SourceIdentifier moduleSourceIdentifier = new SourceIdentifier(module.getName(),
+                SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()));
+        try {
+            String moduleContent = new String(consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class)
+                    .checkedGet().read());
+            capabilities.add(new YangModuleCapability(module, moduleContent));
+            //IOException would be thrown in creating SchemaContext already
+        } catch (SchemaSourceException |IOException e) {
+            throw new RuntimeException("Cannot retrieve schema source for module " + moduleSourceIdentifier.toString() + " from schema repository", e);
+        }
+    }
+
     private void addDefaultSchemas(final SharedSchemaRepository consumer) {
         SourceIdentifier sId = new SourceIdentifier("ietf-netconf-monitoring", "2010-10-04");
         registerSource(consumer, "/META-INF/yang/ietf-netconf-monitoring.yang", sId);