Remove Bierman02 support from sal-rest-docgen 37/100937/3
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 3 May 2022 13:31:15 +0000 (15:31 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 4 May 2022 18:28:13 +0000 (20:28 +0200)
sal-rest-docgen still has references to bierman02, remove them. Since we
are touching blueprint, ditch ODL extension reference.

JIRA: NETCONF-837
Change-Id: If9b89c40779dc9a87e9e26b38ca2bc2ba0dc5500
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
15 files changed:
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/AllModulesDocGenerator.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorDraftO2.java [deleted file]
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/ApiDocServiceImpl.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGeneratorDraft02.java [deleted file]
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 [deleted file]
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/model/builder/OperationBuilder.java
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/mountpoints/MountPointSwagger.java
restconf/sal-rest-docgen/src/main/resources/OSGI-INF/blueprint/blueprint.xml
restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGeneratorDraftO2Test.java [deleted file]
restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGeneratorRFC8040Test.java
restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocServiceImplTest.java
restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/MountPointSwaggerTest.java

index 3cd24ed4dec356969608289344ddebc88efcff82..ee6e0ff2256f06dd2b26969f7f988749c72c7c28 100644 (file)
@@ -7,32 +7,23 @@
  */
 package org.opendaylight.netconf.sal.rest.doc.impl;
 
-import static org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
+import static java.util.Objects.requireNonNull;
 
-import java.util.Objects;
 import javax.ws.rs.core.UriInfo;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
+import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
 import org.opendaylight.netconf.sal.rest.doc.swagger.CommonApiObject;
 import org.opendaylight.netconf.sal.rest.doc.swagger.SwaggerObject;
 
 public class AllModulesDocGenerator {
-    private final ApiDocGeneratorDraftO2 apiDocGeneratorDraft02;
     private final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040;
 
-    public AllModulesDocGenerator(final ApiDocGeneratorDraftO2 apiDocGeneratorDraft02,
-                                  final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040) {
-        this.apiDocGeneratorDraft02 = Objects.requireNonNull(apiDocGeneratorDraft02);
-        this.apiDocGeneratorRFC8040 = Objects.requireNonNull(apiDocGeneratorRFC8040);
+    public AllModulesDocGenerator(final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040) {
+        this.apiDocGeneratorRFC8040 = requireNonNull(apiDocGeneratorRFC8040);
     }
 
-    public CommonApiObject getAllModulesDoc(final UriInfo uriInfo, final URIType uriType, final OAversion oaversion) {
+    public CommonApiObject getAllModulesDoc(final UriInfo uriInfo, final OAversion oaversion) {
         final DefinitionNames definitionNames = new DefinitionNames();
-        final SwaggerObject doc;
-        if (uriType.equals(URIType.DRAFT02)) {
-            doc = apiDocGeneratorDraft02.getAllModulesDoc(uriInfo, definitionNames, uriType, oaversion);
-        } else {
-            doc = apiDocGeneratorRFC8040.getAllModulesDoc(uriInfo, definitionNames, uriType, oaversion);
-        }
+        final SwaggerObject doc = apiDocGeneratorRFC8040.getAllModulesDoc(uriInfo, definitionNames, oaversion);
 
         return BaseYangSwaggerGenerator.getAppropriateDoc(doc, oaversion);
     }
diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorDraftO2.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorDraftO2.java
deleted file mode 100644 (file)
index 8423b0e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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.netconf.sal.rest.doc.impl;
-
-import java.util.Objects;
-import java.util.Optional;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-/**
- * This class gathers all YANG-defined {@link org.opendaylight.yangtools.yang.model.api.Module}s and
- * generates Swagger compliant documentation for the bierman draft02 version.
- */
-public class ApiDocGeneratorDraftO2 extends BaseYangSwaggerGeneratorDraft02 {
-
-    public ApiDocGeneratorDraftO2(final DOMSchemaService schemaService) {
-        super(Optional.of(Objects.requireNonNull(schemaService)));
-    }
-
-    public ApiDocGeneratorDraftO2(final DOMSchemaService schemaService, final String basePath) {
-        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
-    }
-}
index aadd8039bca873fae546316e1a3ed4efb40f3f3d..5d80043416484f1eed44b79de73937596a0cb04f 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.netconf.sal.rest.doc.impl;
 
-import java.util.Objects;
 import java.util.Optional;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 
@@ -18,12 +17,11 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
  * @author Thomas Pantelis
  */
 public class ApiDocGeneratorRFC8040 extends BaseYangSwaggerGeneratorRFC8040 {
-
     public ApiDocGeneratorRFC8040(final DOMSchemaService schemaService) {
-        super(Optional.of(Objects.requireNonNull(schemaService)));
+        super(Optional.of(schemaService));
     }
 
     public ApiDocGeneratorRFC8040(final DOMSchemaService schemaService, final String basePath) {
-        super(Optional.of(Objects.requireNonNull(schemaService)), basePath);
+        super(Optional.of(schemaService), basePath);
     }
 }
index 0f68a1cd79b9d38b726295ea7d648a8c5f62e66b..21dd225952bd73f8888c5584e6c27cf4e200cc32 100644 (file)
@@ -7,8 +7,9 @@
  */
 package org.opendaylight.netconf.sal.rest.doc.impl;
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.List;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import javax.ws.rs.core.Response;
@@ -38,35 +39,24 @@ public class ApiDocServiceImpl implements ApiDocService {
     // Query parameter
     private static final String PAGE_NUM = "pageNum";
 
-    public enum URIType { RFC8040, DRAFT02 }
-
     public enum OAversion { V2_0, V3_0 }
 
-    private final MountPointSwagger mountPointSwaggerDraft02;
     private final MountPointSwagger mountPointSwaggerRFC8040;
-    private final ApiDocGeneratorDraftO2 apiDocGeneratorDraft02;
     private final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040;
     private final AllModulesDocGenerator allModulesDocGenerator;
 
-    public ApiDocServiceImpl(final MountPointSwaggerGeneratorDraft02 mountPointSwaggerGeneratorDraft02,
-                             final MountPointSwaggerGeneratorRFC8040 mountPointSwaggerGeneratorRFC8040,
-                             final ApiDocGeneratorDraftO2 apiDocGeneratorDraft02,
+    public ApiDocServiceImpl(final MountPointSwaggerGeneratorRFC8040 mountPointSwaggerGeneratorRFC8040,
                              final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040,
                              final AllModulesDocGenerator allModulesDocGenerator) {
-        this.mountPointSwaggerDraft02 =
-                Objects.requireNonNull(mountPointSwaggerGeneratorDraft02).getMountPointSwagger();
-        this.mountPointSwaggerRFC8040 =
-                Objects.requireNonNull(mountPointSwaggerGeneratorRFC8040).getMountPointSwagger();
-        this.apiDocGeneratorDraft02 = Objects.requireNonNull(apiDocGeneratorDraft02);
-        this.apiDocGeneratorRFC8040 = Objects.requireNonNull(apiDocGeneratorRFC8040);
-        this.allModulesDocGenerator = Objects.requireNonNull(allModulesDocGenerator);
+        mountPointSwaggerRFC8040 =
+                requireNonNull(mountPointSwaggerGeneratorRFC8040).getMountPointSwagger();
+        this.apiDocGeneratorRFC8040 = requireNonNull(apiDocGeneratorRFC8040);
+        this.allModulesDocGenerator = requireNonNull(allModulesDocGenerator);
     }
 
     @Override
     public synchronized Response getAllModulesDoc(final UriInfo uriInfo) {
-        final CommonApiObject allModulesDoc = allModulesDocGenerator.getAllModulesDoc(uriInfo, identifyUriType(uriInfo),
-                identifyOpenApiVersion(uriInfo));
-        return Response.ok(allModulesDoc).build();
+        return Response.ok(allModulesDocGenerator.getAllModulesDoc(uriInfo, identifyOpenApiVersion(uriInfo))).build();
     }
 
     /**
@@ -74,15 +64,9 @@ public class ApiDocServiceImpl implements ApiDocService {
      */
     @Override
     public synchronized Response getDocByModule(final String module, final String revision, final UriInfo uriInfo) {
-        final CommonApiObject doc;
-        final OAversion oaversion = identifyOpenApiVersion(uriInfo);
-        if (identifyUriType(uriInfo).equals(URIType.RFC8040)) {
-            doc = apiDocGeneratorRFC8040.getApiDeclaration(module, revision, uriInfo, URIType.RFC8040, oaversion);
-        } else {
-            doc = apiDocGeneratorDraft02.getApiDeclaration(module, revision, uriInfo, URIType.DRAFT02, oaversion);
-        }
-
-        return Response.ok(doc).build();
+        return Response.ok(
+            apiDocGeneratorRFC8040.getApiDeclaration(module, revision, uriInfo, identifyOpenApiVersion(uriInfo)))
+            .build();
     }
 
     /**
@@ -95,13 +79,7 @@ public class ApiDocServiceImpl implements ApiDocService {
 
     @Override
     public synchronized Response getListOfMounts(final UriInfo uriInfo) {
-        final MountPointSwagger mountPointSwagger;
-        if (identifyUriType(uriInfo).equals(URIType.RFC8040)) {
-            mountPointSwagger = mountPointSwaggerRFC8040;
-        } else {
-            mountPointSwagger = mountPointSwaggerDraft02;
-        }
-        final List<MountPointInstance> entity = mountPointSwagger
+        final List<MountPointInstance> entity = mountPointSwaggerRFC8040
                 .getInstanceIdentifiers().entrySet().stream()
                 .map(MountPointInstance::new).collect(Collectors.toList());
         return Response.ok(entity).build();
@@ -110,17 +88,9 @@ public class ApiDocServiceImpl implements ApiDocService {
     @Override
     public synchronized Response getMountDocByModule(final String instanceNum, final String module,
                                                      final String revision, final UriInfo uriInfo) {
-        final CommonApiObject api;
         final OAversion oaversion = identifyOpenApiVersion(uriInfo);
-        if (identifyUriType(uriInfo).equals(URIType.RFC8040)) {
-            api = mountPointSwaggerRFC8040
-                    .getMountPointApi(uriInfo, Long.parseLong(instanceNum), module, revision, URIType.RFC8040,
-                            oaversion);
-        } else {
-            api = mountPointSwaggerDraft02
-                    .getMountPointApi(uriInfo, Long.parseLong(instanceNum), module, revision, URIType.DRAFT02,
-                            oaversion);
-        }
+        final CommonApiObject api = mountPointSwaggerRFC8040.getMountPointApi(uriInfo, Long.parseLong(instanceNum),
+            module, revision, oaversion);
         return Response.ok(api).build();
     }
 
@@ -131,25 +101,10 @@ public class ApiDocServiceImpl implements ApiDocService {
         final String stringPageNum = uriInfo.getQueryParameters().getFirst(PAGE_NUM);
         final Optional<Integer> pageNum = stringPageNum != null ? Optional.of(Integer.valueOf(stringPageNum))
                 : Optional.empty();
-        if (identifyUriType(uriInfo).equals(URIType.RFC8040)) {
-            api = mountPointSwaggerRFC8040
-                    .getMountPointApi(uriInfo, Long.parseLong(instanceNum), pageNum, URIType.RFC8040,
-                            oaversion);
-        } else {
-            api = mountPointSwaggerDraft02
-                    .getMountPointApi(uriInfo, Long.parseLong(instanceNum), pageNum, URIType.DRAFT02,
-                            oaversion);
-        }
+        api = mountPointSwaggerRFC8040.getMountPointApi(uriInfo, Long.parseLong(instanceNum), pageNum, oaversion);
         return Response.ok(api).build();
     }
 
-    private static URIType identifyUriType(final UriInfo uriInfo) {
-        if (uriInfo.getBaseUri().toString().contains("/18/")) {
-            return URIType.RFC8040;
-        }
-        return URIType.DRAFT02;
-    }
-
     private static OAversion identifyOpenApiVersion(final UriInfo uriInfo) {
         if (uriInfo.getBaseUri().toString().contains("/swagger2/")) {
             return OAversion.V2_0;
index 2d5593c6e04c9a099f67e6b32a2cc73184f34795..7c987afd2021d37a2addec1114f8f725df1399cd 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.netconf.sal.rest.doc.impl;
 
 import static org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.DEFAULT_PAGESIZE;
-import static org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.CONFIG;
 import static org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.TOP;
 import static org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.buildDelete;
 import static org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.buildGet;
@@ -47,7 +46,6 @@ import java.util.TreeSet;
 import javax.ws.rs.core.UriInfo;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
 import org.opendaylight.netconf.sal.rest.doc.swagger.CommonApiObject;
 import org.opendaylight.netconf.sal.rest.doc.swagger.Components;
 import org.opendaylight.netconf.sal.rest.doc.swagger.Info;
@@ -92,7 +90,7 @@ public abstract class BaseYangSwaggerGenerator {
 
     protected BaseYangSwaggerGenerator(final Optional<DOMSchemaService> schemaService) {
         this.schemaService = schemaService.orElse(null);
-        this.mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
+        mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
     }
 
     public DOMSchemaService getSchemaService() {
@@ -100,8 +98,8 @@ public abstract class BaseYangSwaggerGenerator {
     }
 
     public ResourceList getResourceListing(final UriInfo uriInfo, final EffectiveModelContext schemaContext,
-                                           final String context, final URIType uriType, final OAversion oaversion) {
-        return getResourceListing(uriInfo, schemaContext, context, 0, true, uriType, oaversion);
+                                           final String context, final OAversion oaversion) {
+        return getResourceListing(uriInfo, schemaContext, context, 0, true, oaversion);
     }
 
     /**
@@ -109,7 +107,7 @@ public abstract class BaseYangSwaggerGenerator {
      */
     public ResourceList getResourceListing(final UriInfo uriInfo, final EffectiveModelContext schemaContext,
                                            final String context, final int pageNum, final boolean all,
-                                           final URIType uriType, final OAversion oaversion) {
+                                           final OAversion oaversion) {
         final ResourceList resourceList = createResourceList();
 
         final Set<Module> modules = getSortedModules(schemaContext);
@@ -125,7 +123,7 @@ public abstract class BaseYangSwaggerGenerator {
 
             LOG.debug("Working on [{},{}]...", module.getName(), revisionString);
             final SwaggerObject doc = getApiDeclaration(module.getName(), revisionString, uriInfo, schemaContext,
-                    context, uriType, oaversion);
+                    context, oaversion);
             if (doc != null) {
                 count++;
                 if (count >= start && count < end || all) {
@@ -148,17 +146,17 @@ public abstract class BaseYangSwaggerGenerator {
     }
 
     public SwaggerObject getAllModulesDoc(final UriInfo uriInfo, final DefinitionNames definitionNames,
-                                          final URIType uriType, final OAversion oaversion) {
+                                          final OAversion oaversion) {
         final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
         Preconditions.checkState(schemaContext != null);
         return getAllModulesDoc(uriInfo, Optional.empty(), schemaContext, Optional.empty(), "", definitionNames,
-                uriType, oaversion);
+                oaversion);
     }
 
     public SwaggerObject getAllModulesDoc(final UriInfo uriInfo, final Optional<Range<Integer>> range,
                                           final EffectiveModelContext schemaContext, final Optional<String> deviceName,
                                           final String context, final DefinitionNames definitionNames,
-                                          final URIType uriType, final OAversion oaversion) {
+                                          final OAversion oaversion) {
         final String schema = createSchemaFromUriInfo(uriInfo);
         final String host = createHostFromUriInfo(uriInfo);
         String name = "Controller";
@@ -166,19 +164,19 @@ public abstract class BaseYangSwaggerGenerator {
             name = deviceName.get();
         }
 
-        final String title = String.format("%s modules of RestConf version %s", name, uriType.name());
+        final String title = name + " modules of RESTCONF";
         final SwaggerObject doc = createSwaggerObject(schema, host, BASE_PATH, title);
         doc.setDefinitions(JsonNodeFactory.instance.objectNode());
         doc.setPaths(JsonNodeFactory.instance.objectNode());
 
-        fillDoc(doc, range, schemaContext, context, deviceName, uriType, oaversion, definitionNames);
+        fillDoc(doc, range, schemaContext, context, deviceName, oaversion, definitionNames);
 
         return doc;
     }
 
     public void fillDoc(final SwaggerObject doc, final Optional<Range<Integer>> range,
                         final EffectiveModelContext schemaContext, final String context,
-                        final Optional<String> deviceName, final URIType uriType, final OAversion oaversion,
+                        final Optional<String> deviceName, final OAversion oaversion,
                         final DefinitionNames definitionNames) {
         final SortedSet<Module> modules = getSortedModules(schemaContext);
         final Set<Module> filteredModules;
@@ -193,8 +191,7 @@ public abstract class BaseYangSwaggerGenerator {
 
             LOG.debug("Working on [{},{}]...", module.getName(), revisionString);
 
-            getSwaggerDocSpec(module, context, deviceName, schemaContext, uriType, oaversion, definitionNames, doc,
-                    false);
+            getSwaggerDocSpec(module, context, deviceName, schemaContext, oaversion, definitionNames, doc, false);
         }
     }
 
@@ -236,17 +233,16 @@ public abstract class BaseYangSwaggerGenerator {
     }
 
     public CommonApiObject getApiDeclaration(final String module, final String revision, final UriInfo uriInfo,
-                                             final URIType uriType, final OAversion oaversion) {
+                                             final OAversion oaversion) {
         final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
         Preconditions.checkState(schemaContext != null);
-        final SwaggerObject doc = getApiDeclaration(module, revision, uriInfo, schemaContext, "", uriType,
-                oaversion);
+        final SwaggerObject doc = getApiDeclaration(module, revision, uriInfo, schemaContext, "", oaversion);
         return getAppropriateDoc(doc, oaversion);
     }
 
     public SwaggerObject getApiDeclaration(final String moduleName, final String revision, final UriInfo uriInfo,
                                            final EffectiveModelContext schemaContext, final String context,
-                                           final URIType uriType, final OAversion oaversion) {
+                                           final OAversion oaversion) {
         final Optional<Revision> rev;
 
         try {
@@ -259,16 +255,15 @@ public abstract class BaseYangSwaggerGenerator {
         Preconditions.checkArgument(module != null,
                 "Could not find module by name,revision: " + moduleName + "," + revision);
 
-        return getApiDeclaration(module, uriInfo, context, schemaContext, uriType, oaversion);
+        return getApiDeclaration(module, uriInfo, context, schemaContext, oaversion);
     }
 
-    public SwaggerObject getApiDeclaration(final Module module, final UriInfo uriInfo,
-                                           final String context, final EffectiveModelContext schemaContext,
-                                           final URIType uriType, final OAversion oaversion) {
+    public SwaggerObject getApiDeclaration(final Module module, final UriInfo uriInfo, final String context,
+                                           final EffectiveModelContext schemaContext, final OAversion oaversion) {
         final String schema = createSchemaFromUriInfo(uriInfo);
         final String host = createHostFromUriInfo(uriInfo);
 
-        return getSwaggerDocSpec(module, schema, host, BASE_PATH, context, schemaContext, uriType, oaversion);
+        return getSwaggerDocSpec(module, schema, host, BASE_PATH, context, schemaContext, oaversion);
     }
 
     public String createHostFromUriInfo(final UriInfo uriInfo) {
@@ -286,33 +281,32 @@ public abstract class BaseYangSwaggerGenerator {
 
     public SwaggerObject getSwaggerDocSpec(final Module module, final String schema, final String host,
                                            final String basePath, final String context,
-                                           final EffectiveModelContext schemaContext, final URIType uriType,
-                                           final OAversion oaversion) {
+                                           final EffectiveModelContext schemaContext, final OAversion oaversion) {
         final SwaggerObject doc = createSwaggerObject(schema, host, basePath, module.getName());
         final DefinitionNames definitionNames = new DefinitionNames();
-        return getSwaggerDocSpec(module, context, Optional.empty(), schemaContext, uriType, oaversion,
-                definitionNames, doc, true);
+        return getSwaggerDocSpec(module, context, Optional.empty(), schemaContext, oaversion, definitionNames, doc,
+            true);
     }
 
 
     public SwaggerObject getSwaggerDocSpec(final Module module, final String context, final Optional<String> deviceName,
-                                           final EffectiveModelContext schemaContext, final URIType uriType,
-                                           final OAversion oaversion, final DefinitionNames definitionNames,
-                                           final SwaggerObject doc, final boolean isForSingleModule) {
+                                           final EffectiveModelContext schemaContext, final OAversion oaversion,
+                                           final DefinitionNames definitionNames, final SwaggerObject doc,
+                                           final boolean isForSingleModule) {
         final ObjectNode definitions;
 
         try {
             if (isForSingleModule) {
-                definitions = this.jsonConverter.convertToJsonSchema(module, schemaContext, definitionNames, oaversion,
+                definitions = jsonConverter.convertToJsonSchema(module, schemaContext, definitionNames, oaversion,
                         true);
                 doc.setDefinitions(definitions);
             } else {
-                definitions = this.jsonConverter.convertToJsonSchema(module, schemaContext, definitionNames, oaversion,
+                definitions = jsonConverter.convertToJsonSchema(module, schemaContext, definitionNames, oaversion,
                         false);
                 addFields(doc.getDefinitions(), definitions.fields());
             }
             if (LOG.isDebugEnabled()) {
-                LOG.debug("Document: {}", this.mapper.writeValueAsString(doc));
+                LOG.debug("Document: {}", mapper.writeValueAsString(doc));
             }
         } catch (final IOException e) {
             LOG.error("Exception occured in DefinitionGenerator", e);
@@ -350,17 +344,16 @@ public abstract class BaseYangSwaggerGenerator {
                     }
 
                     final String resolvedPath = resourcePath + "/" + createPath(node, pathParams, oaversion, localName);
-                    addPaths(node, deviceName, moduleName, paths, pathParams, schemaContext, true,
-                            module.getName(), definitionNames, uriType, oaversion, resolvedPath);
+                    addPaths(node, deviceName, moduleName, paths, pathParams, schemaContext, true, module.getName(),
+                        definitionNames, oaversion, resolvedPath);
                 }
                 pathParams = JsonNodeFactory.instance.arrayNode();
                 resourcePath = getResourcePath("operational", context);
 
-                if (uriType.equals(URIType.DRAFT02)
-                        || uriType.equals(URIType.RFC8040) && !node.isConfiguration()) {
+                if (!node.isConfiguration()) {
                     final String resolvedPath = resourcePath + "/" + createPath(node, pathParams, oaversion, localName);
-                    addPaths(node, deviceName, moduleName, paths, pathParams, schemaContext, false,
-                            moduleName, definitionNames, uriType, oaversion, resolvedPath);
+                    addPaths(node, deviceName, moduleName, paths, pathParams, schemaContext, false, moduleName,
+                        definitionNames, oaversion, resolvedPath);
                 }
             }
         }
@@ -446,8 +439,7 @@ public abstract class BaseYangSwaggerGenerator {
     private void addPaths(final DataSchemaNode node, final Optional<String> deviceName, final String moduleName,
                           final ObjectNode paths, final ArrayNode parentPathParams,
                           final EffectiveModelContext schemaContext, final boolean isConfig, final String parentName,
-                          final DefinitionNames definitionNames, final URIType uriType, final OAversion oaversion,
-                          final String resourcePath) {
+                          final DefinitionNames definitionNames, final OAversion oaversion, final String resourcePath) {
         LOG.debug("Adding path: [{}]", resourcePath);
 
         final ArrayNode pathParams = JsonUtil.copy(parentPathParams);
@@ -459,10 +451,10 @@ public abstract class BaseYangSwaggerGenerator {
 
         final ObjectNode path = JsonNodeFactory.instance.objectNode();
         path.setAll(operations(node, moduleName, deviceName, pathParams, isConfig, parentName, definitionNames,
-                uriType, oaversion));
+                oaversion));
         paths.set(resourcePath, path);
 
-        if (uriType.equals(URIType.RFC8040)) {
+        if (node instanceof ActionNodeContainer) {
             ((ActionNodeContainer) node).getActions().forEach(actionDef -> {
                 final String resolvedPath = "rests/operations" + resourcePath.substring(11)
                         + "/" + resolvePathArgumentsName(actionDef.getQName(), node.getQName(), schemaContext);
@@ -477,16 +469,9 @@ public abstract class BaseYangSwaggerGenerator {
                 final String localName = resolvePathArgumentsName(childNode.getQName(), node.getQName(), schemaContext);
                 final String newResourcePath = resourcePath + "/" + createPath(childNode, pathParams, oaversion,
                         localName);
-                if (uriType.equals(URIType.RFC8040)) {
-                    final boolean newIsConfig = isConfig && childNode.isConfiguration();
-                    addPaths(childNode, deviceName, moduleName, paths, pathParams, schemaContext,
-                            newIsConfig, newParent, definitionNames, uriType, oaversion, newResourcePath);
-                } else {
-                    if (!isConfig || childNode.isConfiguration()) {
-                        addPaths(childNode, deviceName, moduleName, paths, pathParams, schemaContext,
-                                isConfig, newParent, definitionNames, uriType, oaversion, newResourcePath);
-                    }
-                }
+                final boolean newIsConfig = isConfig && childNode.isConfiguration();
+                addPaths(childNode, deviceName, moduleName, paths, pathParams, schemaContext,
+                    newIsConfig, newParent, definitionNames, oaversion, newResourcePath);
             }
         }
     }
@@ -503,21 +488,15 @@ public abstract class BaseYangSwaggerGenerator {
     private static Map<String, ObjectNode> operations(final DataSchemaNode node, final String moduleName,
                                                       final Optional<String> deviceName, final ArrayNode pathParams,
                                                       final boolean isConfig, final String parentName,
-                                                      final DefinitionNames definitionNames, final URIType uriType,
+                                                      final DefinitionNames definitionNames,
                                                       final OAversion oaversion) {
         final Map<String, ObjectNode> operations = new HashMap<>();
         final String discriminator = definitionNames.getDiscriminator(node);
 
         final String nodeName = node.getQName().getLocalName();
 
-        String prefix = "_";
-        if (isConfig && uriType.equals(URIType.DRAFT02)) {
-            prefix = CONFIG + "_";
-        }
-
-        final String defName = parentName + prefix + nodeName + TOP + discriminator;
-        final ObjectNode get = buildGet(node, moduleName, deviceName, pathParams, defName, isConfig, uriType,
-                oaversion);
+        final String defName = parentName + "_" + nodeName + TOP + discriminator;
+        final ObjectNode get = buildGet(node, moduleName, deviceName, pathParams, defName, isConfig, oaversion);
         operations.put("get", get);
 
 
diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGeneratorDraft02.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGeneratorDraft02.java
deleted file mode 100644 (file)
index 497d9c5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2018 Inocybe Technologies 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.netconf.sal.rest.doc.impl;
-
-import java.util.Optional;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-
-/**
- * Base class for a bierman draft02 implementation.
- *
- * @author Thomas Pantelis
- */
-public abstract class BaseYangSwaggerGeneratorDraft02 extends BaseYangSwaggerGenerator {
-
-    private static final String PATH_VERSION = "draft02";
-    private static final String DEFAULT_BASE_PATH = "restconf";
-    private final String basePath;
-
-    protected BaseYangSwaggerGeneratorDraft02(final Optional<DOMSchemaService> schemaService) {
-        super(schemaService);
-        this.basePath = DEFAULT_BASE_PATH;
-    }
-
-    protected BaseYangSwaggerGeneratorDraft02(final Optional<DOMSchemaService> schemaService, final String basePath) {
-        super(schemaService);
-        this.basePath = basePath;
-    }
-
-    @Override
-    protected String getPathVersion() {
-        return PATH_VERSION;
-    }
-
-    @Override
-    public String getResourcePath(final String resourceType, final String context) {
-        return "/" + basePath + "/" + resourceType + context;
-    }
-
-    @Override
-    public String getResourcePathPart(final String resourceType) {
-        return resourceType;
-    }
-
-    @Override
-    protected ListPathBuilder newListPathBuilder() {
-        return key -> "/{" + key + "}";
-    }
-
-    @Override
-    protected void appendPathKeyValue(final StringBuilder builder, final Object value) {
-        builder.append(value).append('/');
-    }
-}
index f9a4615bfffec7a89c49d09aec35e57da70df91d..909088798282066085b38091c3b12d30977d32e0 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.netconf.sal.rest.doc.impl;
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.Optional;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 
@@ -16,24 +18,20 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
  * @author Thomas Pantelis
  */
 public abstract class BaseYangSwaggerGeneratorRFC8040 extends BaseYangSwaggerGenerator {
-
-    private static final String DEFAULT_BASE_PATH = "rests";
-    private static final String PATH_VERSION = "rfc8040";
     private final String basePath;
 
     protected BaseYangSwaggerGeneratorRFC8040(final Optional<DOMSchemaService> schemaService) {
-        super(schemaService);
-        this.basePath = DEFAULT_BASE_PATH;
+        this(schemaService, "rests");
     }
 
     protected BaseYangSwaggerGeneratorRFC8040(final Optional<DOMSchemaService> schemaService, final String basePath) {
         super(schemaService);
-        this.basePath = basePath;
+        this.basePath = requireNonNull(basePath);
     }
 
     @Override
     protected String getPathVersion() {
-        return PATH_VERSION;
+        return "rfc8040";
     }
 
     @Override
diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/MountPointSwaggerGeneratorDraft02.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/MountPointSwaggerGeneratorDraft02.java
deleted file mode 100644 (file)
index 6843bfa..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2018 Inocybe Technologies 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.netconf.sal.rest.doc.impl;
-
-import java.util.Optional;
-import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.mdsal.dom.api.DOMSchemaService;
-import org.opendaylight.netconf.sal.rest.doc.mountpoints.MountPointSwagger;
-
-/**
- * MountPoint generator implementation for bierman draft02.
- *
- * @author Thomas Pantelis
- */
-public class MountPointSwaggerGeneratorDraft02 extends BaseYangSwaggerGeneratorDraft02 implements AutoCloseable {
-
-    private final MountPointSwagger mountPointSwagger;
-
-    public MountPointSwaggerGeneratorDraft02(final DOMSchemaService schemaService,
-            final DOMMountPointService mountService) {
-        super(Optional.of(schemaService));
-        mountPointSwagger = new MountPointSwagger(schemaService, mountService, this);
-        mountPointSwagger.init();
-    }
-
-    public MountPointSwaggerGeneratorDraft02(final DOMSchemaService schemaService,
-            final DOMMountPointService mountService, final String basePath) {
-        super(Optional.of(schemaService), basePath);
-        mountPointSwagger = new MountPointSwagger(schemaService, mountService, this);
-        mountPointSwagger.init();
-    }
-
-    public MountPointSwagger getMountPointSwagger() {
-        return mountPointSwagger;
-    }
-
-    @Override
-    public void close() {
-        mountPointSwagger.close();
-    }
-}
index d5ee84fd2f2a2230fd09c30809c0d746ace102eb..8ba66aa60854368ff17d2b789577ad23e5ceaca7 100644 (file)
@@ -21,9 +21,7 @@ import java.util.Optional;
 import javax.ws.rs.HttpMethod;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
 import org.opendaylight.netconf.sal.rest.doc.impl.DefinitionNames;
 import org.opendaylight.netconf.sal.rest.doc.util.JsonUtil;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -107,8 +105,7 @@ public final class OperationBuilder {
 
     public static ObjectNode buildGet(final DataSchemaNode node, final String moduleName,
                                       final Optional<String> deviceName, final ArrayNode pathParams,
-                                      final String defName, final boolean isConfig,
-                                      final URIType uriType, final OAversion oaversion) {
+                                      final String defName, final boolean isConfig, final OAversion oaversion) {
         final ObjectNode value = JsonNodeFactory.instance.objectNode();
         value.put(DESCRIPTION_KEY, node.getDescription().orElse(""));
         value.put(SUMMARY_KEY, buildSummaryValue(HttpMethod.GET, moduleName, deviceName,
@@ -116,7 +113,7 @@ public final class OperationBuilder {
         value.set(TAGS_KEY, buildTagsValue(deviceName, moduleName));
         final ArrayNode parameters = JsonUtil.copy(pathParams);
 
-        addQueryParameters(parameters, isConfig, uriType, oaversion);
+        addQueryParameters(parameters, isConfig, oaversion);
 
         value.set(PARAMETERS_KEY, parameters);
 
@@ -131,25 +128,23 @@ public final class OperationBuilder {
     }
 
     private static void addQueryParameters(final ArrayNode parameters, final boolean isConfig,
-                                           final ApiDocServiceImpl.URIType uriType, final OAversion oaversion) {
-        if (uriType.equals(ApiDocServiceImpl.URIType.RFC8040)) {
-            final ObjectNode contentParam = JsonNodeFactory.instance.objectNode();
-            final ArrayNode cases = JsonNodeFactory.instance.arrayNode();
-            cases.add(NONCONFIG_QUERY_PARAM);
-            if (isConfig) {
-                cases.add(CONFIG_QUERY_PARAM);
-            } else {
-                contentParam.put(REQUIRED_KEY, true);
-            }
-            contentParam.put(IN_KEY, QUERY);
-            contentParam.put(NAME_KEY, CONTENT);
+                                           final OAversion oaversion) {
+        final ObjectNode contentParam = JsonNodeFactory.instance.objectNode();
+        final ArrayNode cases = JsonNodeFactory.instance.arrayNode();
+        cases.add(NONCONFIG_QUERY_PARAM);
+        if (isConfig) {
+            cases.add(CONFIG_QUERY_PARAM);
+        } else {
+            contentParam.put(REQUIRED_KEY, true);
+        }
+        contentParam.put(IN_KEY, QUERY);
+        contentParam.put(NAME_KEY, CONTENT);
 
-            final ObjectNode typeParent = getTypeParentNode(contentParam, oaversion);
-            typeParent.put(TYPE_KEY, STRING);
-            typeParent.set(ENUM_KEY, cases);
+        final ObjectNode typeParent = getTypeParentNode(contentParam, oaversion);
+        typeParent.put(TYPE_KEY, STRING);
+        typeParent.set(ENUM_KEY, cases);
 
-            parameters.add(contentParam);
-        }
+        parameters.add(contentParam);
     }
 
     public static ObjectNode buildPut(final String parentName, final String nodeName, final String discriminator,
index c75a2daa82ff31d578e90354f0c3d31f580828d5..c51b485f4df65db3f758a99d3960f0bb767fc8fc 100644 (file)
@@ -35,7 +35,6 @@ import org.opendaylight.mdsal.dom.api.DOMMountPointListener;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
 import org.opendaylight.netconf.sal.rest.doc.impl.BaseYangSwaggerGenerator;
 import org.opendaylight.netconf.sal.rest.doc.impl.DefinitionNames;
 import org.opendaylight.netconf.sal.rest.doc.swagger.CommonApiObject;
@@ -89,9 +88,9 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
 
     public Map<String, Long> getInstanceIdentifiers() {
         final Map<String, Long> urlToId = new HashMap<>();
-        synchronized (this.lock) {
-            final SchemaContext context = this.globalSchema.getGlobalContext();
-            for (final Entry<YangInstanceIdentifier, Long> entry : this.instanceIdToLongId.entrySet()) {
+        synchronized (lock) {
+            final SchemaContext context = globalSchema.getGlobalContext();
+            for (final Entry<YangInstanceIdentifier, Long> entry : instanceIdToLongId.entrySet()) {
                 final String modName = findModuleName(entry.getKey(), context);
                 urlToId.put(swaggerGenerator.generateUrlPrefixFromInstanceID(entry.getKey(), modName),
                         entry.getValue());
@@ -111,14 +110,14 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
     }
 
     private String getYangMountUrl(final YangInstanceIdentifier key) {
-        final String modName = findModuleName(key, this.globalSchema.getGlobalContext());
+        final String modName = findModuleName(key, globalSchema.getGlobalContext());
         return swaggerGenerator.generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
     }
 
     private YangInstanceIdentifier getInstanceId(final Long id) {
         final YangInstanceIdentifier instanceId;
-        synchronized (this.lock) {
-            instanceId = this.longIdToInstanceId.get(id);
+        synchronized (lock) {
+            instanceId = longIdToInstanceId.get(id);
         }
         return instanceId;
     }
@@ -129,14 +128,14 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
         }
 
         checkState(mountService != null);
-        return this.mountService.getMountPoint(id)
+        return mountService.getMountPoint(id)
             .flatMap(mountPoint -> mountPoint.getService(DOMSchemaService.class))
             .flatMap(svc -> Optional.ofNullable(svc.getGlobalContext()))
             .orElse(null);
     }
 
     public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final String module,
-                                            final String revision, final URIType uriType, final OAversion oaversion) {
+                                            final String revision, final OAversion oaversion) {
         final YangInstanceIdentifier iid = getInstanceId(id);
         final EffectiveModelContext context = getSchemaContext(iid);
         final String urlPrefix = getYangMountUrl(iid);
@@ -150,12 +149,12 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
             return generateDataStoreApiDoc(uriInfo, urlPrefix, deviceName);
         }
         final SwaggerObject swaggerObject = swaggerGenerator.getApiDeclaration(module, revision, uriInfo, context,
-                urlPrefix, uriType, oaversion);
+                urlPrefix, oaversion);
         return BaseYangSwaggerGenerator.getAppropriateDoc(swaggerObject, oaversion);
     }
 
     public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final Optional<Integer> pageNum,
-                                            final URIType uriType, final OAversion oaversion) {
+                                            final OAversion oaversion) {
         final YangInstanceIdentifier iid = getInstanceId(id);
         final EffectiveModelContext context = getSchemaContext(iid);
         final String urlPrefix = getYangMountUrl(iid);
@@ -184,7 +183,7 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
         final SwaggerObject doc;
 
         final SwaggerObject swaggerObject = swaggerGenerator.getAllModulesDoc(uriInfo, range, context,
-                Optional.of(deviceName), urlPrefix, definitionNames, uriType, oaversion);
+                Optional.of(deviceName), urlPrefix, definitionNames, oaversion);
 
         if (includeDataStore) {
             doc = generateDataStoreApiDoc(uriInfo, urlPrefix, deviceName);
@@ -244,20 +243,20 @@ public class MountPointSwagger implements DOMMountPointListener, AutoCloseable {
 
     @Override
     public void onMountPointCreated(final YangInstanceIdentifier path) {
-        synchronized (this.lock) {
+        synchronized (lock) {
             LOG.debug("Mount point {} created", path);
-            final Long idLong = this.idKey.incrementAndGet();
-            this.instanceIdToLongId.put(path, idLong);
-            this.longIdToInstanceId.put(idLong, path);
+            final Long idLong = idKey.incrementAndGet();
+            instanceIdToLongId.put(path, idLong);
+            longIdToInstanceId.put(idLong, path);
         }
     }
 
     @Override
     public void onMountPointRemoved(final YangInstanceIdentifier path) {
-        synchronized (this.lock) {
+        synchronized (lock) {
             LOG.debug("Mount point {} removed", path);
-            final Long id = this.instanceIdToLongId.remove(path);
-            this.longIdToInstanceId.remove(id);
+            final Long id = instanceIdToLongId.remove(path);
+            longIdToInstanceId.remove(id);
         }
     }
 }
index 7d1c2fe77105b1df480daba8f5063c1c4d2ec1d1..439099bbbfb7cda5d548d9d514c226d4c3b2d945 100644 (file)
@@ -7,45 +7,29 @@ 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
 -->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           odl:use-default-for-reference-types="true">
-
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
     <reference id="schemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
     <reference id="domMountPointService" interface="org.opendaylight.mdsal.dom.api.DOMMountPointService"/>
     <reference id="webServer" interface="org.opendaylight.aaa.web.WebServer"/>
     <reference id="webContextSecurer" interface="org.opendaylight.aaa.web.WebContextSecurer"/>
     <reference id="servletSupport" interface="org.opendaylight.aaa.web.servlet.ServletSupport" />
 
-    <bean id="mountPointDraft02" class="org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorDraft02"
-            destroy-method="close">
-        <argument ref="schemaService" />
-        <argument ref="domMountPointService" />
-    </bean>
-
     <bean id="mountPointRFC8040" class="org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorRFC8040"
             destroy-method="close">
         <argument ref="schemaService" />
         <argument ref="domMountPointService" />
     </bean>
 
-    <bean id="apiDocDraftO2" class="org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorDraftO2">
-        <argument ref="schemaService" />
-    </bean>
-
     <bean id="apiDocRFC8040" class="org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorRFC8040">
         <argument ref="schemaService" />
     </bean>
 
     <bean id="allModulesDoc" class="org.opendaylight.netconf.sal.rest.doc.impl.AllModulesDocGenerator">
-        <argument ref="apiDocDraftO2" />
         <argument ref="apiDocRFC8040" />
     </bean>
 
     <bean id="apiDocService" class="org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl">
-        <argument ref="mountPointDraft02" />
         <argument ref="mountPointRFC8040" />
-        <argument ref="apiDocDraftO2" />
         <argument ref="apiDocRFC8040" />
         <argument ref="allModulesDoc" />
     </bean>
@@ -60,5 +44,5 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
         <argument ref="webContextSecurer"/>
         <argument ref="servletSupport"/>
         <argument ref="apiDocApplication"/>
-  </bean>
+    </bean>
 </blueprint>
diff --git a/restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGeneratorDraftO2Test.java b/restconf/sal-rest-docgen/src/test/java/org/opendaylight/controller/sal/rest/doc/impl/ApiDocGeneratorDraftO2Test.java
deleted file mode 100644 (file)
index 77a3583..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2014, 2015 Cisco Systems, Inc. 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.controller.sal.rest.doc.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import org.junit.Test;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorDraftO2;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
-import org.opendaylight.netconf.sal.rest.doc.swagger.SwaggerObject;
-import org.opendaylight.yangtools.yang.common.Revision;
-
-public final class ApiDocGeneratorDraftO2Test extends AbstractApiDocTest {
-    private static final String NAME = "toaster2";
-    private static final String REVISION_DATE = "2009-11-20";
-    private static final String NAME_2 = "toaster";
-    private static final String REVISION_DATE_2 = "2009-11-20";
-
-    private final ApiDocGeneratorDraftO2 generator = new ApiDocGeneratorDraftO2(SCHEMA_SERVICE);
-
-    /**
-     * Test that paths are generated according to the model.
-     */
-    @Test
-    public void testPaths() {
-        final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
-        final var doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT, URIType.DRAFT02,
-            ApiDocServiceImpl.OAversion.V2_0);
-
-        assertEquals(List.of("/restconf/config",
-            "/restconf/config/toaster2:toaster",
-            "/restconf/config/toaster2:toaster/toasterSlot/{slotId}",
-            "/restconf/config/toaster2:toaster/toasterSlot/{slotId}/toaster-augmented:slotInfo",
-            "/restconf/operational/toaster2:toaster",
-            "/restconf/operational/toaster2:toaster/toasterSlot/{slotId}",
-            "/restconf/operational/toaster2:toaster/toasterSlot/{slotId}/toaster-augmented:slotInfo",
-            "/restconf/config/toaster2:lst",
-            "/restconf/config/toaster2:lst/cont1",
-            "/restconf/config/toaster2:lst/cont1/cont11",
-            "/restconf/config/toaster2:lst/cont1/lst11",
-            "/restconf/config/toaster2:lst/lst1/{key1}/{key2}",
-            "/restconf/operational/toaster2:lst",
-            "/restconf/operational/toaster2:lst/cont1",
-            "/restconf/operational/toaster2:lst/cont1/cont11",
-            "/restconf/operational/toaster2:lst/cont1/lst11",
-            "/restconf/operational/toaster2:lst/lst1/{key1}/{key2}",
-            "/restconf/operations/toaster2:make-toast",
-            "/restconf/operations/toaster2:cancel-toast",
-            "/restconf/operations/toaster2:restock-toaster"),
-            ImmutableList.copyOf(doc.getPaths().fieldNames()));
-    }
-
-    /**
-     * Test that generated configuration paths allow to use operations: get, put, delete and post.
-     */
-    @Test
-    public void testConfigPaths() {
-        final List<String> configPaths = List.of("/restconf/config/toaster2:lst",
-            "/restconf/config/toaster2:lst/cont1",
-            "/restconf/config/toaster2:lst/cont1/cont11",
-            "/restconf/config/toaster2:lst/cont1/lst11",
-            "/restconf/config/toaster2:lst/lst1/{key1}/{key2}");
-
-        final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
-        final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.DRAFT02, ApiDocServiceImpl.OAversion.V2_0);
-
-        for (final String path : configPaths) {
-            final JsonNode node = doc.getPaths().get(path);
-            assertFalse(node.path("get").isMissingNode());
-            assertFalse(node.path("put").isMissingNode());
-            assertFalse(node.path("delete").isMissingNode());
-            assertFalse(node.path("post").isMissingNode());
-        }
-    }
-
-    /**
-     * Test that generated document contains the following definitions.
-     */
-    @Test
-    public void testDefinitions() {
-        final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
-        final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.DRAFT02, ApiDocServiceImpl.OAversion.V2_0);
-
-        final ObjectNode definitions = doc.getDefinitions();
-        assertNotNull(definitions);
-
-        final JsonNode configLstTop = definitions.get("toaster2_config_lst_TOP");
-        assertNotNull(configLstTop);
-        DocGenTestHelper.containsReferences(configLstTop, "lst", "#/definitions/toaster2_config_lst");
-
-        final JsonNode configLst = definitions.get("toaster2_config_lst");
-        assertNotNull(configLst);
-        DocGenTestHelper.containsReferences(configLst, "lst1", "#/definitions/toaster2_lst_config_lst1");
-        DocGenTestHelper.containsReferences(configLst, "cont1", "#/definitions/toaster2_lst_config_cont1");
-
-        final JsonNode configLst1Top = definitions.get("toaster2_lst_config_lst1_TOP");
-        assertNotNull(configLst1Top);
-        DocGenTestHelper.containsReferences(configLst1Top, "lst1", "#/definitions/toaster2_lst_config_lst1");
-
-        final JsonNode configLst1 = definitions.get("toaster2_lst_config_lst1");
-        assertNotNull(configLst1);
-
-        final JsonNode configCont1Top = definitions.get("toaster2_lst_config_cont1_TOP");
-        assertNotNull(configCont1Top);
-        DocGenTestHelper.containsReferences(configCont1Top, "cont1", "#/definitions/toaster2_lst_config_cont1");
-
-        final JsonNode configCont1 = definitions.get("toaster2_lst_config_cont1");
-        assertNotNull(configCont1);
-        DocGenTestHelper.containsReferences(configCont1, "cont11", "#/definitions/toaster2_lst_cont1_config_cont11");
-        DocGenTestHelper.containsReferences(configCont1, "lst11", "#/definitions/toaster2_lst_cont1_config_lst11");
-
-        final JsonNode configCont11Top = definitions.get("toaster2_lst_cont1_config_cont11_TOP");
-        assertNotNull(configCont11Top);
-        DocGenTestHelper.containsReferences(configCont11Top,
-            "cont11", "#/definitions/toaster2_lst_cont1_config_cont11");
-
-        final JsonNode configCont11 = definitions.get("toaster2_lst_cont1_config_cont11");
-        assertNotNull(configCont11);
-
-        final JsonNode configLst11Top = definitions.get("toaster2_lst_cont1_config_lst11_TOP");
-        assertNotNull(configLst11Top);
-        DocGenTestHelper.containsReferences(configLst11Top, "lst11", "#/definitions/toaster2_lst_cont1_config_lst11");
-
-        final JsonNode configLst11 = definitions.get("toaster2_lst_cont1_config_lst11");
-        assertNotNull(configLst11);
-    }
-
-    /**
-     * Test that generated document contains RPC definition for "make-toast" with correct input.
-     */
-    @Test
-    public void testRPC() {
-        final var module = CONTEXT.findModule(NAME_2, Revision.of(REVISION_DATE_2)).orElseThrow();
-        final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.DRAFT02, ApiDocServiceImpl.OAversion.V2_0);
-        assertNotNull(doc);
-
-        final ObjectNode definitions = doc.getDefinitions();
-        final JsonNode inputTop = definitions.get("toaster_make-toast_input_TOP");
-        assertNotNull(inputTop);
-        final String testString = "{\"input\":{\"$ref\":\"#/definitions/toaster_make-toast_input\"}}";
-        assertEquals(testString, inputTop.get("properties").toString());
-        final JsonNode input = definitions.get("toaster_make-toast_input");
-        final JsonNode properties = input.get("properties");
-        assertTrue(properties.has("toasterDoneness"));
-        assertTrue(properties.has("toasterToastType"));
-    }
-}
index ff56d801a051bee5cc778fa87b25fb77feb300ee..5ff15734135a51e56969eff483fa572ccdd6c447 100644 (file)
@@ -19,7 +19,6 @@ import java.util.List;
 import org.junit.Test;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorRFC8040;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
 import org.opendaylight.netconf.sal.rest.doc.swagger.SwaggerObject;
 import org.opendaylight.yangtools.yang.common.Revision;
 
@@ -38,7 +37,7 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
     public void testPaths() {
         final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
         final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.RFC8040, ApiDocServiceImpl.OAversion.V2_0);
+            ApiDocServiceImpl.OAversion.V2_0);
 
         assertEquals(List.of("/rests/data",
             "/rests/data/toaster2:toaster",
@@ -68,7 +67,7 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
 
         final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
         final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.RFC8040, ApiDocServiceImpl.OAversion.V2_0);
+            ApiDocServiceImpl.OAversion.V2_0);
 
         for (final String path : configPaths) {
             final JsonNode node = doc.getPaths().get(path);
@@ -86,7 +85,7 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
     public void testDefinitions() {
         final var module = CONTEXT.findModule(NAME, Revision.of(REVISION_DATE)).orElseThrow();
         final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.RFC8040, ApiDocServiceImpl.OAversion.V2_0);
+            ApiDocServiceImpl.OAversion.V2_0);
 
         final ObjectNode definitions = doc.getDefinitions();
         assertNotNull(definitions);
@@ -139,7 +138,7 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
     public void testRPC() {
         final var module = CONTEXT.findModule(NAME_2, Revision.of(REVISION_DATE_2)).orElseThrow();
         final SwaggerObject doc = generator.getSwaggerDocSpec(module, "http", "localhost:8181", "/", "", CONTEXT,
-            URIType.RFC8040, ApiDocServiceImpl.OAversion.V2_0);
+            ApiDocServiceImpl.OAversion.V2_0);
         assertNotNull(doc);
 
         final ObjectNode definitions = doc.getDefinitions();
index 61ee1ed28e846691731839eb20e51db6e30593a1..ec9b3a2590588a1bc2672c6da2e5dd62577b1ffc 100644 (file)
@@ -21,10 +21,8 @@ import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.netconf.sal.rest.doc.api.ApiDocService;
 import org.opendaylight.netconf.sal.rest.doc.impl.AllModulesDocGenerator;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorDraftO2;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocGeneratorRFC8040;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl;
-import org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorDraft02;
 import org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorRFC8040;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -45,17 +43,12 @@ public final class ApiDocServiceImplTest extends AbstractApiDocTest {
 
         final DOMMountPointService service = mock(DOMMountPointService.class);
         when(service.getMountPoint(INSTANCE_ID)).thenReturn(Optional.of(mountPoint));
-        final MountPointSwaggerGeneratorDraft02 mountPointDraft02 =
-                new MountPointSwaggerGeneratorDraft02(SCHEMA_SERVICE, service);
         final MountPointSwaggerGeneratorRFC8040 mountPointRFC8040 =
                 new MountPointSwaggerGeneratorRFC8040(SCHEMA_SERVICE, service);
-        final ApiDocGeneratorDraftO2 apiDocGeneratorDraftO2 = new ApiDocGeneratorDraftO2(SCHEMA_SERVICE);
         final ApiDocGeneratorRFC8040 apiDocGeneratorRFC8040 = new ApiDocGeneratorRFC8040(SCHEMA_SERVICE);
-        mountPointDraft02.getMountPointSwagger().onMountPointCreated(INSTANCE_ID);
-        final AllModulesDocGenerator allModulesDocGenerator = new AllModulesDocGenerator(apiDocGeneratorDraftO2,
-                apiDocGeneratorRFC8040);
-        apiDocService = new ApiDocServiceImpl(mountPointDraft02, mountPointRFC8040, apiDocGeneratorDraftO2,
-                apiDocGeneratorRFC8040, allModulesDocGenerator);
+        mountPointRFC8040.getMountPointSwagger().onMountPointCreated(INSTANCE_ID);
+        final AllModulesDocGenerator allModulesDocGenerator = new AllModulesDocGenerator(apiDocGeneratorRFC8040);
+        apiDocService = new ApiDocServiceImpl(mountPointRFC8040, apiDocGeneratorRFC8040, allModulesDocGenerator);
     }
 
     @Test
@@ -64,6 +57,6 @@ public final class ApiDocServiceImplTest extends AbstractApiDocTest {
         // simulate the behavior of JacksonJaxbJsonProvider
         final ObjectMapper mapper = new ObjectMapper();
         final String result = mapper.writer().writeValueAsString(apiDocService.getListOfMounts(mockInfo).getEntity());
-        assertEquals("[{\"instance\":\"/nodes/node/123/\",\"id\":1}]", result);
+        assertEquals("[{\"instance\":\"/nodes/node=123/\",\"id\":1}]", result);
     }
 }
index 56d3e910dc4d05d8691c0e35efc120eaf39a295c..1f241da3dd59121dd54e3c4f8947256d4e5b49be 100644 (file)
@@ -15,7 +15,6 @@ import static org.mockito.Mockito.when;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
@@ -27,8 +26,7 @@ import org.opendaylight.mdsal.dom.api.DOMMountPoint;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.OAversion;
-import org.opendaylight.netconf.sal.rest.doc.impl.ApiDocServiceImpl.URIType;
-import org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorDraft02;
+import org.opendaylight.netconf.sal.rest.doc.impl.MountPointSwaggerGeneratorRFC8040;
 import org.opendaylight.netconf.sal.rest.doc.mountpoints.MountPointSwagger;
 import org.opendaylight.netconf.sal.rest.doc.swagger.SwaggerObject;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -40,7 +38,7 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
             .node(QName.create("", "nodes"))
             .node(QName.create("", "node"))
             .nodeWithKey(QName.create("", "node"), QName.create("", "id"), "123").build();
-    private static final String INSTANCE_URL = "/nodes/node/123/";
+    private static final String INSTANCE_URL = "/nodes/node=123/";
 
     private MountPointSwagger swagger;
 
@@ -55,7 +53,7 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
         final DOMMountPointService service = mock(DOMMountPointService.class);
         when(service.getMountPoint(INSTANCE_ID)).thenReturn(Optional.of(mountPoint));
 
-        swagger = new MountPointSwaggerGeneratorDraft02(SCHEMA_SERVICE, service).getMountPointSwagger();
+        swagger = new MountPointSwaggerGeneratorRFC8040(SCHEMA_SERVICE, service).getMountPointSwagger();
     }
 
     @Test()
@@ -76,14 +74,14 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
         final UriInfo mockInfo = DocGenTestHelper.createMockUriInfo(HTTP_URL);
         swagger.onMountPointCreated(INSTANCE_ID); // add this ID into the list of mount points
 
-        final SwaggerObject mountPointApi = (SwaggerObject) swagger.getMountPointApi(mockInfo, 1L, "Datastores",
-                "-", URIType.DRAFT02, OAversion.V2_0);
+        final SwaggerObject mountPointApi = (SwaggerObject) swagger.getMountPointApi(mockInfo, 1L, "Datastores", "-",
+            OAversion.V2_0);
         assertNotNull("failed to find Datastore API", mountPointApi);
 
         final ObjectNode pathsObject = mountPointApi.getPaths();
         assertNotNull(pathsObject);
 
-        assertEquals("Unexpected api list size", 3, pathsObject.size());
+        assertEquals("Unexpected api list size", 2, pathsObject.size());
 
         final Set<String> actualUrls = new TreeSet<>();
 
@@ -102,10 +100,7 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
             assertNotNull("expected non-null desc on " + path, getOperation.get("description"));
         }
 
-        final Set<String> expectedUrls = new TreeSet<>(List.of(
-                "/restconf/config" + INSTANCE_URL + "yang-ext:mount",
-                "/restconf/operational" + INSTANCE_URL + "yang-ext:mount",
-                "/restconf/operations" + INSTANCE_URL + "yang-ext:mount"));
-        assertEquals(expectedUrls, actualUrls);
+        assertEquals(Set.of("/rests/data" + INSTANCE_URL + "yang-ext:mount",
+            "/rests/operations" + INSTANCE_URL + "yang-ext:mount"), actualUrls);
     }
 }