allow automatic selection of swagger file by 44/115944/2
authorBenjamin, Max <max.benjamin@att.com>
Tue, 1 Dec 2020 01:08:25 +0000 (20:08 -0500)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Tue, 5 Jan 2021 15:32:30 +0000 (10:32 -0500)
allow automatic selection of swagger file by LATEST

Issue-ID: SO-3408
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I879244cc0cd76cf4a5a6f9bf70598da4f6973b83

graph-inventory/aai-client/pom.xml
graph-inventory/fluent-builder-maven-plugin/src/main/java/org/onap/graphinventory/generate/SwaggerConverter.java

index d1c9742..d532103 100644 (file)
@@ -93,7 +93,7 @@
               <destination>${project.build.directory}/generated-sources</destination>
               <destinationClasspath>org.onap.aaiclient.client.generated.fluentbuilders</destinationClasspath>
               <builderName>AAIFluentTypeBuilder</builderName>
-              <swaggerLocation>${project.build.directory}/swagger/onap/aai_swagger_yaml/aai_swagger_v21.yaml</swaggerLocation>
+              <swaggerLocation>${project.build.directory}/swagger/onap/aai_swagger_yaml/aai_swagger_LATEST.yaml</swaggerLocation>
               <singularBuilderClass>org.onap.aaiclient.client.aai.entities.uri.AAIFluentSingleType</singularBuilderClass>
               <pluralBuilderClass>org.onap.aaiclient.client.aai.entities.uri.AAIFluentPluralType</pluralBuilderClass>
               <topLevelBuilderClass>org.onap.aaiclient.client.aai.entities.uri.AAIFluentTopLevelType</topLevelBuilderClass>
index ec09af8..fc42d9c 100644 (file)
@@ -1,6 +1,10 @@
 package org.onap.graphinventory.generate;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -26,6 +30,9 @@ public class SwaggerConverter {
     }
 
     public Map<String, ObjectType> getDoc(String swaggerLocation) throws JsonProcessingException {
+
+
+        swaggerLocation = processLocation(swaggerLocation);
         Swagger swagger = new SwaggerParser().read(swaggerLocation);
 
         Map<String, Path> paths = swagger.getPaths().entrySet().stream()
@@ -168,4 +175,19 @@ public class SwaggerConverter {
 
         return output;
     }
+
+    private String processLocation(String swaggerLocation) {
+
+        java.nio.file.Path path = Paths.get(swaggerLocation);
+        try {
+            return Files.list(path.getParent())
+                    .filter(it -> it.getFileName().toString()
+                            .matches(path.getFileName().toString().replaceFirst("LATEST", "v\\\\\\d+")))
+                    .sorted(Comparator.reverseOrder()).map(it -> it.toString()).findFirst().orElseGet(null);
+        } catch (IOException e) {
+            log.error(e);
+        }
+
+        return null;
+    }
 }