Make swagger generators configurable 24/78824/7
authorJuraj Veverka <juraj.veverka@pantheon.tech>
Sun, 16 Dec 2018 09:48:02 +0000 (10:48 +0100)
committerJakub Morvay <jmorvay@frinx.io>
Wed, 9 Jan 2019 12:19:19 +0000 (13:19 +0100)
Swagger generators use configurable base URL paths with defaults:
- BaseYangSwaggerGeneratorDraft02 uses "restconf"
- BaseYangSwaggerGeneratorRFC8040 uses "rests"
Defaults may be overridden per deployment scenario. This makes Swagger
document generator more flexible in out-of karaf deployment scenarios.

Change-Id: I5fdda329dd2911913137d25a48450a5e161af679
Signed-off-by: Juraj Veverka <juraj.veverka@pantheon.tech>
Signed-off-by: Jakub Morvay <jmorvay@frinx.io>
restconf/sal-rest-docgen-maven/src/main/java/org/opendaylight/netconf/sal/rest/doc/maven/StaticDocGenerator.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorDraftO2.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorRFC8040.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGeneratorDraft02.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGeneratorRFC8040.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/MountPointSwaggerGeneratorDraft02.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/MountPointSwaggerGeneratorRFC8040.java

index 4ce00e647afe8ef2886192d9c685b0e9d63626e2..28827b4fa53e0d3fcf5e27856c11b4b209019dc9 100644 (file)
@@ -130,7 +130,7 @@ public class StaticDocGenerator extends BaseYangSwaggerGeneratorDraft02
     @Override
     public String createBasePathFromUriInfo(final UriInfo uriInfo) {
         if (uriInfo == null) {
-            return RESTCONF_CONTEXT_ROOT;
+            return DEFAULT_BASE_PATH;
         }
         return super.createBasePathFromUriInfo(uriInfo);
     }
index f792c1ece9f7624d98dfd20c03992e9ab3ebe1e8..f4d20b91ef117f1a922f016032b6d894319737c6 100644 (file)
@@ -20,4 +20,8 @@ public class ApiDocGeneratorDraftO2 extends BaseYangSwaggerGeneratorDraft02 {
     public ApiDocGeneratorDraftO2(DOMSchemaService schemaService) {
         super(Optional.of(Objects.requireNonNull(schemaService)));
     }
+
+    public ApiDocGeneratorDraftO2(DOMSchemaService schemaService, String basePath) {
+        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
+    }
 }
index 8640561b9f9425a650bd2a30ac45e76798e0b6b6..838f03b0468d9e0f55a31038cd8381bf138be4c1 100644 (file)
@@ -22,4 +22,8 @@ public class ApiDocGeneratorRFC8040 extends BaseYangSwaggerGeneratorRFC8040 {
     public ApiDocGeneratorRFC8040(DOMSchemaService schemaService) {
         super(Optional.of(Objects.requireNonNull(schemaService)));
     }
+
+    public ApiDocGeneratorRFC8040(DOMSchemaService schemaService, String basePath) {
+        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
+    }
 }
index 9ad416b175700ebd0247bc8b3bcccb46b114ad0c..85bdde6ba8c3d0ae6e0142dfde1ad6850f231cd2 100644 (file)
@@ -16,15 +16,23 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
  * @author Thomas Pantelis
  */
 public abstract class BaseYangSwaggerGeneratorDraft02 extends BaseYangSwaggerGenerator {
-    protected static final String RESTCONF_CONTEXT_ROOT = "restconf";
+
+    protected static final String DEFAULT_BASE_PATH = "restconf";
+    private final String basePath;
 
     protected BaseYangSwaggerGeneratorDraft02(Optional<DOMSchemaService> schemaService) {
         super(schemaService);
+        this.basePath = DEFAULT_BASE_PATH;
+    }
+
+    protected BaseYangSwaggerGeneratorDraft02(Optional<DOMSchemaService> schemaService, String basePath) {
+        super(schemaService);
+        this.basePath = basePath;
     }
 
     @Override
     public String getDataStorePath(final String dataStore, final String context) {
-        return "/" + RESTCONF_CONTEXT_ROOT + "/" + dataStore + context;
+        return "/" + basePath + "/" + dataStore + context;
     }
 
     @Override
index c21f9afea8609c434a5200c7c777a929c2e4fb6a..482800cd1303f45371f36fd1677a266e42d63fea 100644 (file)
@@ -17,18 +17,25 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
  */
 public abstract class BaseYangSwaggerGeneratorRFC8040 extends BaseYangSwaggerGenerator {
 
-    private static final String BASE_PATH = "rests";
+    private static final String DEFAULT_BASE_PATH = "rests";
+    private final String basePath;
 
     protected BaseYangSwaggerGeneratorRFC8040(Optional<DOMSchemaService> schemaService) {
         super(schemaService);
+        this.basePath = DEFAULT_BASE_PATH;
+    }
+
+    protected BaseYangSwaggerGeneratorRFC8040(Optional<DOMSchemaService> schemaService, String basePath) {
+        super(schemaService);
+        this.basePath = basePath;
     }
 
     @Override
     public String getDataStorePath(final String dataStore, final String context) {
         if ("config".contains(dataStore) || "operational".contains(dataStore)) {
-            return "/" + BASE_PATH + "/data" + context;
+            return "/" + basePath + "/data" + context;
         }
-        return "/" + BASE_PATH + "/operations" + context;
+        return "/" + basePath + "/operations" + context;
     }
 
     @Override
index f0c7d19017fb2b58ec186a1abc914daaa61e07de..6a26ef5be6df42d0e9f4f24840f74b98a241aa13 100644 (file)
@@ -28,6 +28,13 @@ public class MountPointSwaggerGeneratorDraft02 extends BaseYangSwaggerGeneratorD
         mountPointSwagger.init();
     }
 
+    public MountPointSwaggerGeneratorDraft02(DOMSchemaService schemaService, DOMMountPointService mountService,
+                                             String basePath) {
+        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
+        mountPointSwagger = new MountPointSwagger(schemaService, mountService, this);
+        mountPointSwagger.init();
+    }
+
     public MountPointSwagger getMountPointSwagger() {
         return mountPointSwagger;
     }
index 0eb34279057aedf79fa730b4ccdcda461a267224..3e9efcb95e93b51c2c3bcb0b676eea0cf0758b9e 100644 (file)
@@ -27,6 +27,13 @@ public class MountPointSwaggerGeneratorRFC8040 extends BaseYangSwaggerGeneratorR
         mountPointSwagger.init();
     }
 
+    public MountPointSwaggerGeneratorRFC8040(DOMSchemaService schemaService, DOMMountPointService mountService,
+                                             String basePath) {
+        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
+        mountPointSwagger = new MountPointSwagger(schemaService, mountService, this);
+        mountPointSwagger.init();
+    }
+
     public MountPointSwagger getMountPointSwagger() {
         return mountPointSwagger;
     }