diff options
author | Fiete Ostkamp <Fiete.Ostkamp@telekom.de> | 2022-09-19 16:55:36 +0200 |
---|---|---|
committer | Fiete Ostkamp <Fiete.Ostkamp@telekom.de> | 2022-09-19 16:55:36 +0200 |
commit | 7343beeaf260747aef6a6b9c22acd91de67c5ca0 (patch) | |
tree | cc90d98dfb61d5066184b346612bb04caaae64b4 /aai-schema-gen/src/main | |
parent | e0ad4f2890f9f933199bc6f1b3f0e988da471aa9 (diff) |
Add instructions to invoke the linter and code formatter plugins to the README and invoke the formatter
Issue-ID: AAI-3526
Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
Change-Id: Ibd383994732cea6460153704a1153beb530dc6c3
Diffstat (limited to 'aai-schema-gen/src/main')
23 files changed, 804 insertions, 787 deletions
diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java index 85ecfad..ae5426f 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/AutoGenerateHtml.java @@ -4,13 +4,13 @@ * ================================================================================ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ - * Modifications Copyright © 2018 IBM. + * Modifications Copyright © 2018 IBM. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -19,13 +19,10 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.schemagen; import freemarker.template.TemplateException; -import org.onap.aai.schemagen.swagger.GenerateSwagger; -import org.onap.aai.setup.SchemaVersion; -import org.onap.aai.setup.SchemaVersions; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; import java.io.File; import java.io.IOException; @@ -33,23 +30,25 @@ import java.util.Collections; import java.util.List; import java.util.ListIterator; +import org.onap.aai.schemagen.swagger.GenerateSwagger; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + public class AutoGenerateHtml { private static final String AAI_GENERATE_VERSION = "aai.generate.version"; public static final String DEFAULT_SCHEMA_DIR = "../aai-schema"; - //if the program is run from aai-common, use this directory as default" + // if the program is run from aai-common, use this directory as default" public static final String ALT_SCHEMA_DIR = "aai-schema"; - //used to check to see if program is run from aai-schema-gen + // used to check to see if program is run from aai-schema-gen public static final String DEFAULT_RUN_DIR = "aai-schema-gen"; public static void main(String[] args) throws IOException, TemplateException { String savedProperty = System.getProperty(AAI_GENERATE_VERSION); - AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( - "org.onap.aai.setup", - "org.onap.aai.schemagen" - ); - + AnnotationConfigApplicationContext ctx = + new AnnotationConfigApplicationContext("org.onap.aai.setup", "org.onap.aai.schemagen"); SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class); @@ -58,18 +57,20 @@ public class AutoGenerateHtml { Collections.reverse(versionsToGen); ListIterator<SchemaVersion> versionIterator = versionsToGen.listIterator(); String schemaDir; - if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + if (System.getProperty("user.dir") != null + && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { schemaDir = ALT_SCHEMA_DIR; - } - else { - schemaDir = DEFAULT_SCHEMA_DIR; - } - String release = System.getProperty("aai.release", "onap"); + } else { + schemaDir = DEFAULT_SCHEMA_DIR; + } + String release = System.getProperty("aai.release", "onap"); while (versionIterator.hasNext()) { System.setProperty(AAI_GENERATE_VERSION, versionIterator.next().toString()); - String yamlFile = schemaDir + "/src/main/resources/" + release + "/aai_swagger_yaml/aai_swagger_" + System.getProperty(AAI_GENERATE_VERSION)+ ".yaml"; + String yamlFile = + schemaDir + "/src/main/resources/" + release + "/aai_swagger_yaml/aai_swagger_" + + System.getProperty(AAI_GENERATE_VERSION) + ".yaml"; File swaggerYamlFile = new File(yamlFile); - if(swaggerYamlFile.exists()) { + if (swaggerYamlFile.exists()) { GenerateSwagger.schemaVersions = schemaVersions; GenerateSwagger.main(args); } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java index 9d3f258..490e290 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/GenerateXsd.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,126 +17,124 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.aai.schemagen; - -import java.nio.charset.StandardCharsets; -import org.onap.aai.setup.SchemaVersion; -import org.onap.aai.setup.SchemaVersions; -import org.onap.aai.schemagen.genxsd.HTMLfromOXM; -import org.onap.aai.schemagen.genxsd.NodesYAMLfromOXM; -import org.onap.aai.schemagen.genxsd.YAMLfromOXM; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.w3c.dom.NodeList; +package org.onap.aai.schemagen; import java.io.BufferedWriter; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; +import org.onap.aai.schemagen.genxsd.HTMLfromOXM; +import org.onap.aai.schemagen.genxsd.NodesYAMLfromOXM; +import org.onap.aai.schemagen.genxsd.YAMLfromOXM; +import org.onap.aai.setup.SchemaVersion; +import org.onap.aai.setup.SchemaVersions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.w3c.dom.NodeList; + public class GenerateXsd { - private static final Logger logger = LoggerFactory.getLogger("GenerateXsd.class"); - protected static String apiVersion = null; - public static AnnotationConfigApplicationContext ctx = null; - static String apiVersionFmt = null; - static boolean useAnnotationsInXsd = false; - static String responsesUrl = null; - static String responsesLabel = null; - static String jsonEdges = null; - static Map<String, String> generatedJavaType; - static Map<String, String> appliedPaths; - static String RELEASE = System.getProperty("aai.release", "onap"); - - - static NodeList javaTypeNodes; - static Map<String,String> javaTypeDefinitions = createJavaTypeDefinitions(); - private static Map<String, String> createJavaTypeDefinitions() - { + private static final Logger logger = LoggerFactory.getLogger("GenerateXsd.class"); + protected static String apiVersion = null; + public static AnnotationConfigApplicationContext ctx = null; + static String apiVersionFmt = null; + static boolean useAnnotationsInXsd = false; + static String responsesUrl = null; + static String responsesLabel = null; + static String jsonEdges = null; + static Map<String, String> generatedJavaType; + static Map<String, String> appliedPaths; + static String RELEASE = System.getProperty("aai.release", "onap"); + + static NodeList javaTypeNodes; + static Map<String, String> javaTypeDefinitions = createJavaTypeDefinitions(); + + private static Map<String, String> createJavaTypeDefinitions() { StringBuilder aaiInternal = new StringBuilder(); - Map<String,String> javaTypeDefinitions = new HashMap<String, String>(); - aaiInternal.append(" aai-internal:\n"); - aaiInternal.append(" properties:\n"); - aaiInternal.append(" property-name:\n"); - aaiInternal.append(" type: string\n"); - aaiInternal.append(" property-value:\n"); - aaiInternal.append(" type: string\n"); -// javaTypeDefinitions.put("aai-internal", aaiInternal.toString()); - return javaTypeDefinitions; + Map<String, String> javaTypeDefinitions = new HashMap<String, String>(); + aaiInternal.append(" aai-internal:\n"); + aaiInternal.append(" properties:\n"); + aaiInternal.append(" property-name:\n"); + aaiInternal.append(" type: string\n"); + aaiInternal.append(" property-value:\n"); + aaiInternal.append(" type: string\n"); + // javaTypeDefinitions.put("aai-internal", aaiInternal.toString()); + return javaTypeDefinitions; } - public static final int VALUE_NONE = 0; - public static final int VALUE_DESCRIPTION = 1; - public static final int VALUE_INDEXED_PROPS = 2; - public static final int VALUE_CONTAINER = 3; - - private static final String GENERATE_TYPE_XSD = "xsd"; - private static final String GENERATE_TYPE_YAML = "yaml"; + public static final int VALUE_NONE = 0; + public static final int VALUE_DESCRIPTION = 1; + public static final int VALUE_INDEXED_PROPS = 2; + public static final int VALUE_CONTAINER = 3; - private final static String NODE_DIR = System.getProperty("nodes.configuration.location"); - private final static String EDGE_DIR = System.getProperty("edges.configuration.location"); - private static final String BASE_ROOT = "aai-schema/"; - private static final String BASE_AUTO_GEN_ROOT = "aai-schema/"; + private static final String GENERATE_TYPE_XSD = "xsd"; + private static final String GENERATE_TYPE_YAML = "yaml"; - private static final String ROOT = BASE_ROOT + "src/main/resources"; - private static final String AUTO_GEN_ROOT = BASE_AUTO_GEN_ROOT + "src/main/resources"; + private final static String NODE_DIR = System.getProperty("nodes.configuration.location"); + private final static String EDGE_DIR = System.getProperty("edges.configuration.location"); + private static final String BASE_ROOT = "aai-schema/"; + private static final String BASE_AUTO_GEN_ROOT = "aai-schema/"; - private static final String NORMAL_START_DIR = "aai-schema-gen"; - private static final String XSD_DIR = ROOT + "/" + RELEASE +"/aai_schema"; + private static final String ROOT = BASE_ROOT + "src/main/resources"; + private static final String AUTO_GEN_ROOT = BASE_AUTO_GEN_ROOT + "src/main/resources"; - private static final String - YAML_DIR = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains( - NORMAL_START_DIR))) ? - AUTO_GEN_ROOT : - ROOT) + "/" + RELEASE + "/aai_swagger_yaml"; + private static final String NORMAL_START_DIR = "aai-schema-gen"; + private static final String XSD_DIR = ROOT + "/" + RELEASE + "/aai_schema"; - /* These three strings are for yaml auto-generation from aai-common class*/ + private static final String YAML_DIR = (((System.getProperty("user.dir") != null) + && (!System.getProperty("user.dir").contains(NORMAL_START_DIR))) ? AUTO_GEN_ROOT : ROOT) + + "/" + RELEASE + "/aai_swagger_yaml"; - private static final int SWAGGER_SUPPORT_STARTS_VERSION = 1; // minimum version to support swagger documentation + /* These three strings are for yaml auto-generation from aai-common class */ + private static final int SWAGGER_SUPPORT_STARTS_VERSION = 1; // minimum version to support + // swagger documentation - private static boolean validVersion(String versionToGen) { + private static boolean validVersion(String versionToGen) { - if ("ALL".equalsIgnoreCase(versionToGen)) { - return true; - } + if ("ALL".equalsIgnoreCase(versionToGen)) { + return true; + } - SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); - if (schemaVersions == null) { - return false; + SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); + if (schemaVersions == null) { + return false; + } + for (SchemaVersion v : schemaVersions.getVersions()) { + if (v.toString().equals(versionToGen)) { + return true; + } } - for (SchemaVersion v : schemaVersions.getVersions()) { - if (v.toString().equals(versionToGen)) { - return true; - } - } - return false; - } + return false; + } - private static boolean versionSupportsSwagger(String version) { + private static boolean versionSupportsSwagger(String version) { return Integer.parseInt(version.substring(1)) >= SWAGGER_SUPPORT_STARTS_VERSION; } - public static String getAPIVersion() { - return apiVersion; - } + public static String getAPIVersion() { + return apiVersion; + } + + public static String getYamlDir() { + return YAML_DIR; + } - public static String getYamlDir() { - return YAML_DIR; - } + public static String getResponsesUrl() { + return responsesUrl; + } - public static String getResponsesUrl() { - return responsesUrl; - } - public static void main(String[] args) throws IOException { - String versionToGen = System.getProperty("gen_version"); + public static void main(String[] args) throws IOException { + String versionToGen = System.getProperty("gen_version"); if (versionToGen == null) { System.err.println("Version is required, ie v<n> or ALL."); System.exit(1); @@ -151,176 +149,172 @@ public class GenerateXsd { fileTypeToGen = fileTypeToGen.toLowerCase(); } - AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( - "org.onap.aai.setup", - "org.onap.aai.schemagen" - ); + AnnotationConfigApplicationContext ctx = + new AnnotationConfigApplicationContext("org.onap.aai.setup", "org.onap.aai.schemagen"); - SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class); + SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class); - if ( !fileTypeToGen.equals(GENERATE_TYPE_XSD) && !fileTypeToGen.equals(GENERATE_TYPE_YAML)) { - System.err.println("Invalid gen_type passed. " + fileTypeToGen); - System.exit(1); - } + if (!fileTypeToGen.equals(GENERATE_TYPE_XSD) && !fileTypeToGen.equals(GENERATE_TYPE_YAML)) { + System.err.println("Invalid gen_type passed. " + fileTypeToGen); + System.exit(1); + } - String responsesLabel = System.getProperty("yamlresponses_url"); - responsesUrl = responsesLabel; + String responsesLabel = System.getProperty("yamlresponses_url"); + responsesUrl = responsesLabel; - List<SchemaVersion> versionsToGen = new ArrayList<>(); - if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) { - System.err.println("Invalid version passed. " + versionToGen); - System.exit(1); - } - else if ("ALL".equalsIgnoreCase(versionToGen)) { - versionsToGen = schemaVersions.getVersions(); - Collections.sort(versionsToGen); - Collections.reverse(versionsToGen); - } else { - versionsToGen.add(new SchemaVersion(versionToGen)); - } - - //process file type System property - if ( fileTypeToGen.equals(GENERATE_TYPE_YAML) ) { - if ( responsesUrl == null || responsesUrl.length() < 1 - || responsesLabel == null || responsesLabel.length() < 1 ) { - System.err.println("generating swagger yaml file requires yamlresponses_url and yamlresponses_label properties" ); - System.exit(1); - } else { - responsesUrl = "description: "+ "Response codes found in [response codes]("+responsesLabel+ ").\n"; - } - } - /* - * TODO: Oxm Path is config driveb - */ - String oxmPath; - if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains( - NORMAL_START_DIR)) { - oxmPath = BASE_AUTO_GEN_ROOT + NODE_DIR; - } - else { - oxmPath = BASE_ROOT + NODE_DIR; - } + List<SchemaVersion> versionsToGen = new ArrayList<>(); + if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") + && !validVersion(versionToGen)) { + System.err.println("Invalid version passed. " + versionToGen); + System.exit(1); + } else if ("ALL".equalsIgnoreCase(versionToGen)) { + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + } else { + versionsToGen.add(new SchemaVersion(versionToGen)); + } - String outfileName = null; - File outfile; - String nodesfileName = null; - File nodesfile; - String fileContent = null; - String nodesContent = null; - - - for (SchemaVersion v : versionsToGen) { - apiVersion = v.toString(); - logger.debug("YAMLdir = "+ YAML_DIR); - logger.debug("Generating " + apiVersion + " " + fileTypeToGen); - apiVersionFmt = "." + apiVersion + "."; - generatedJavaType = new HashMap<String, String>(); - appliedPaths = new HashMap<String, String>(); - File edgeRuleFile = null; - String fileName = EDGE_DIR + "DbEdgeRules_" + apiVersion + ".json"; - logger.debug("user.dir = "+System.getProperty("user.dir")); - if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains( - NORMAL_START_DIR)) { - fileName = BASE_AUTO_GEN_ROOT + fileName; - - } - else { - fileName = BASE_ROOT + fileName; - - } - edgeRuleFile = new File( fileName); -// Document doc = ni.getSchema(translateVersion(v)); - - if ( fileTypeToGen.equals(GENERATE_TYPE_XSD) ) { - outfileName = XSD_DIR + "/aai_schema_" + apiVersion + "." + GENERATE_TYPE_XSD; - try { - HTMLfromOXM swagger = ctx.getBean(HTMLfromOXM.class); - swagger.setVersion(v); - fileContent = swagger.process(); - if ( fileContent.startsWith("Schema format issue")) { - throw new Exception(fileContent); - } - } catch(Exception e) { - logger.error( "Exception creating output file " + outfileName); - logger.error( e.getMessage()); - System.exit(-1); + // process file type System property + if (fileTypeToGen.equals(GENERATE_TYPE_YAML)) { + if (responsesUrl == null || responsesUrl.length() < 1 || responsesLabel == null + || responsesLabel.length() < 1) { + System.err.println( + "generating swagger yaml file requires yamlresponses_url and yamlresponses_label properties"); + System.exit(1); + } else { + responsesUrl = "description: " + "Response codes found in [response codes](" + + responsesLabel + ").\n"; + } } - } else if ( versionSupportsSwagger(apiVersion )) { - outfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + GENERATE_TYPE_YAML; - nodesfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + "nodes"+"."+ - GENERATE_TYPE_YAML; - try { - YAMLfromOXM swagger = (YAMLfromOXM) ctx.getBean(YAMLfromOXM.class); - swagger.setVersion(v); - fileContent = swagger.process(); - Map combinedJavaTypes = swagger.getCombinedJavaTypes(); - NodesYAMLfromOXM nodesSwagger = ctx.getBean(NodesYAMLfromOXM.class); - nodesSwagger.setVersion(v); - nodesSwagger.setCombinedJavaTypes(combinedJavaTypes); - nodesContent = nodesSwagger.process(); - } catch(Exception e) { - logger.error("Exception creating output file " + outfileName, e); + /* + * TODO: Oxm Path is config driveb + */ + String oxmPath; + if (System.getProperty("user.dir") != null + && !System.getProperty("user.dir").contains(NORMAL_START_DIR)) { + oxmPath = BASE_AUTO_GEN_ROOT + NODE_DIR; + } else { + oxmPath = BASE_ROOT + NODE_DIR; } - } else { - continue; - } - outfile = new File(outfileName); - File parentDir = outfile.getParentFile(); - if(!parentDir.exists()) { + + String outfileName = null; + File outfile; + String nodesfileName = null; + File nodesfile; + String fileContent = null; + String nodesContent = null; + + for (SchemaVersion v : versionsToGen) { + apiVersion = v.toString(); + logger.debug("YAMLdir = " + YAML_DIR); + logger.debug("Generating " + apiVersion + " " + fileTypeToGen); + apiVersionFmt = "." + apiVersion + "."; + generatedJavaType = new HashMap<String, String>(); + appliedPaths = new HashMap<String, String>(); + File edgeRuleFile = null; + String fileName = EDGE_DIR + "DbEdgeRules_" + apiVersion + ".json"; + logger.debug("user.dir = " + System.getProperty("user.dir")); + if (System.getProperty("user.dir") != null + && !System.getProperty("user.dir").contains(NORMAL_START_DIR)) { + fileName = BASE_AUTO_GEN_ROOT + fileName; + + } else { + fileName = BASE_ROOT + fileName; + + } + edgeRuleFile = new File(fileName); + // Document doc = ni.getSchema(translateVersion(v)); + + if (fileTypeToGen.equals(GENERATE_TYPE_XSD)) { + outfileName = XSD_DIR + "/aai_schema_" + apiVersion + "." + GENERATE_TYPE_XSD; + try { + HTMLfromOXM swagger = ctx.getBean(HTMLfromOXM.class); + swagger.setVersion(v); + fileContent = swagger.process(); + if (fileContent.startsWith("Schema format issue")) { + throw new Exception(fileContent); + } + } catch (Exception e) { + logger.error("Exception creating output file " + outfileName); + logger.error(e.getMessage()); + System.exit(-1); + } + } else if (versionSupportsSwagger(apiVersion)) { + outfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + GENERATE_TYPE_YAML; + nodesfileName = YAML_DIR + "/aai_swagger_" + apiVersion + "." + "nodes" + "." + + GENERATE_TYPE_YAML; + try { + YAMLfromOXM swagger = (YAMLfromOXM) ctx.getBean(YAMLfromOXM.class); + swagger.setVersion(v); + fileContent = swagger.process(); + Map combinedJavaTypes = swagger.getCombinedJavaTypes(); + NodesYAMLfromOXM nodesSwagger = ctx.getBean(NodesYAMLfromOXM.class); + nodesSwagger.setVersion(v); + nodesSwagger.setCombinedJavaTypes(combinedJavaTypes); + nodesContent = nodesSwagger.process(); + } catch (Exception e) { + logger.error("Exception creating output file " + outfileName, e); + } + } else { + continue; + } + outfile = new File(outfileName); + File parentDir = outfile.getParentFile(); + if (!parentDir.exists()) { parentDir.mkdirs(); } - if(nodesfileName != null) { - BufferedWriter nodesBW = null; - nodesfile = new File(nodesfileName); - parentDir = nodesfile.getParentFile(); - if(!parentDir.exists()){ + if (nodesfileName != null) { + BufferedWriter nodesBW = null; + nodesfile = new File(nodesfileName); + parentDir = nodesfile.getParentFile(); + if (!parentDir.exists()) { parentDir.mkdirs(); } - try { - if(!nodesfile.createNewFile()) { - logger.error( "File {} already exist", nodesfileName); + try { + if (!nodesfile.createNewFile()) { + logger.error("File {} already exist", nodesfileName); } - } catch (IOException e) { - logger.error( "Exception creating output file " + nodesfileName, e); - } - try { - Charset charset = StandardCharsets.UTF_8; - Path path = Paths.get(nodesfileName); - nodesBW = Files.newBufferedWriter(path, charset); - nodesBW.write(nodesContent); - } catch ( IOException e) { - logger.error( "Exception writing output file " + outfileName, e); - } finally { - if ( nodesBW != null ) { - nodesBW.close(); - } + } catch (IOException e) { + logger.error("Exception creating output file " + nodesfileName, e); + } + try { + Charset charset = StandardCharsets.UTF_8; + Path path = Paths.get(nodesfileName); + nodesBW = Files.newBufferedWriter(path, charset); + nodesBW.write(nodesContent); + } catch (IOException e) { + logger.error("Exception writing output file " + outfileName, e); + } finally { + if (nodesBW != null) { + nodesBW.close(); + } + } } - } - try { - if(!outfile.createNewFile()) { - logger.error( "File {} already exist", outfileName); + try { + if (!outfile.createNewFile()) { + logger.error("File {} already exist", outfileName); } - } catch (IOException e) { - logger.error( "Exception creating output file " + outfileName, e); - } - BufferedWriter bw = null; - try { - Charset charset = StandardCharsets.UTF_8; - Path path = Paths.get(outfileName); - bw = Files.newBufferedWriter(path, charset); - bw.write(fileContent); - } catch ( IOException e) { - logger.error( "Exception writing output file " + outfileName, e); - } finally { - if ( bw != null ) { - bw.close(); + } catch (IOException e) { + logger.error("Exception creating output file " + outfileName, e); } - } - logger.debug( "GeneratedXSD successful, saved in " + outfileName); - } + BufferedWriter bw = null; + try { + Charset charset = StandardCharsets.UTF_8; + Path path = Paths.get(outfileName); + bw = Files.newBufferedWriter(path, charset); + bw.write(fileContent); + } catch (IOException e) { + logger.error("Exception writing output file " + outfileName, e); + } finally { + if (bw != null) { + bw.close(); + } + } + logger.debug("GeneratedXSD successful, saved in " + outfileName); + } - } + } } - diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java index 26ff4b6..4657862 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SchemaConfiguration.java @@ -10,7 +10,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -19,6 +19,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.schemagen; import org.onap.aai.edges.EdgeIngestor; @@ -34,8 +35,10 @@ import org.springframework.context.annotation.Configuration; public class SchemaConfiguration { @Bean - public EdgeIngestor edgeIngestor(SchemaLocationsBean schemaLocationsBean, SchemaVersions schemaVersions){ - return new EdgeIngestor(configTranslator(schemaLocationsBean, schemaVersions), schemaVersions); + public EdgeIngestor edgeIngestor(SchemaLocationsBean schemaLocationsBean, + SchemaVersions schemaVersions) { + return new EdgeIngestor(configTranslator(schemaLocationsBean, schemaVersions), + schemaVersions); } @Bean(name = "nodeIngestor") @@ -44,7 +47,8 @@ public class SchemaConfiguration { } @Bean(name = "configTranslator") - public ConfigTranslator configTranslator(SchemaLocationsBean schemaLocationsBean, SchemaVersions schemaVersions) { + public ConfigTranslator configTranslator(SchemaLocationsBean schemaLocationsBean, + SchemaVersions schemaVersions) { return new AAIConfigTranslator(schemaLocationsBean, schemaVersions); } } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java index d91cf81..4bdc05b 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SpringContextAware.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,8 +17,8 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.aai.schemagen; +package org.onap.aai.schemagen; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; @@ -31,31 +31,30 @@ public class SpringContextAware implements ApplicationContextAware { private static ApplicationContext context = null; public static ApplicationContext getApplicationContext() { - return context; + return context; } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - context = applicationContext; + context = applicationContext; } - - public static <T> T getBean(String beanName, Class<T> requiredType) { - if(context != null){ - return context.getBean(beanName, requiredType); - } + public static <T> T getBean(String beanName, Class<T> requiredType) { + if (context != null) { + return context.getBean(beanName, requiredType); + } return null; - } + } - public static <T> T getBean(Class<T> clazz){ - if(context != null){ + public static <T> T getBean(Class<T> clazz) { + if (context != null) { return context.getBean(clazz); } return null; } - public static Object getBean(String bean){ - if(context != null){ + public static Object getBean(String bean) { + if (context != null) { return context.getBean(bean); } return null; diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java index e479328..0370e8b 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/SwaggerGenerationConfiguration.java @@ -10,7 +10,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -19,15 +19,15 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.aai.schemagen; +package org.onap.aai.schemagen; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.nodes.NodeIngestor; -import org.onap.aai.setup.SchemaVersions; import org.onap.aai.schemagen.genxsd.HTMLfromOXM; import org.onap.aai.schemagen.genxsd.NodesYAMLfromOXM; import org.onap.aai.schemagen.genxsd.YAMLfromOXM; +import org.onap.aai.setup.SchemaVersions; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; @@ -45,19 +45,22 @@ public class SwaggerGenerationConfiguration { @Bean @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) - public NodesYAMLfromOXM nodesYamlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + public NodesYAMLfromOXM nodesYamlFromOXM(SchemaVersions schemaVersions, + NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { return new NodesYAMLfromOXM(basePath, schemaVersions, nodeIngestor, edgeIngestor); } @Bean @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) - public HTMLfromOXM htmlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + public HTMLfromOXM htmlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, + EdgeIngestor edgeIngestor) { return new HTMLfromOXM(maxOccurs, schemaVersions, nodeIngestor, edgeIngestor); } @Bean @Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE) - public YAMLfromOXM yamlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, EdgeIngestor edgeIngestor) { + public YAMLfromOXM yamlFromOXM(SchemaVersions schemaVersions, NodeIngestor nodeIngestor, + EdgeIngestor edgeIngestor) { return new YAMLfromOXM(basePath, schemaVersions, nodeIngestor, edgeIngestor); } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java index c4db6f9..87ba528 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/ConfigTranslatorForDocs.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -20,62 +20,63 @@ package org.onap.aai.schemagen.genxsd; +import java.io.File; +import java.io.FilenameFilter; +import java.util.*; + import org.onap.aai.setup.ConfigTranslator; import org.onap.aai.setup.SchemaLocationsBean; import org.onap.aai.setup.SchemaVersion; import org.onap.aai.setup.SchemaVersions; -import java.io.File; -import java.io.FilenameFilter; -import java.util.*; - public class ConfigTranslatorForDocs extends ConfigTranslator { - public ConfigTranslatorForDocs(SchemaLocationsBean bean, SchemaVersions schemaVersions) { - super(bean, schemaVersions); - } + public ConfigTranslatorForDocs(SchemaLocationsBean bean, SchemaVersions schemaVersions) { + super(bean, schemaVersions); + } - @Override - public Map<SchemaVersion, List<String>> getNodeFiles() { - List<SchemaVersion> versionsToGen = new ArrayList<>(); - versionsToGen = schemaVersions.getVersions(); - Collections.sort(versionsToGen); - Collections.reverse(versionsToGen); - Map<SchemaVersion, List<String>> mp = new TreeMap<>(); - for (SchemaVersion v : versionsToGen) { - File dir = new File(bean.getNodeDirectory() + File.separator + v.toString().toLowerCase()); - File [] fileSet = dir.listFiles(); - List<String> files = new ArrayList<>(); - for(File f: fileSet ) { - files.add(f.getAbsolutePath()); - } + @Override + public Map<SchemaVersion, List<String>> getNodeFiles() { + List<SchemaVersion> versionsToGen = new ArrayList<>(); + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + Map<SchemaVersion, List<String>> mp = new TreeMap<>(); + for (SchemaVersion v : versionsToGen) { + File dir = + new File(bean.getNodeDirectory() + File.separator + v.toString().toLowerCase()); + File[] fileSet = dir.listFiles(); + List<String> files = new ArrayList<>(); + for (File f : fileSet) { + files.add(f.getAbsolutePath()); + } - mp.put(v, files); + mp.put(v, files); + } + return mp; } - return mp; - } - @Override - public Map<SchemaVersion, List<String>> getEdgeFiles() { - List<SchemaVersion> versionsToGen = new ArrayList<>(); - versionsToGen = schemaVersions.getVersions(); - Collections.sort(versionsToGen); - Collections.reverse(versionsToGen); - Map<SchemaVersion, List<String>> mp = new TreeMap<>(); - for (SchemaVersion v : versionsToGen) { - File dir = new File(bean.getEdgeDirectory()); - File [] fileSet = dir.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.contains("_"+v.toString().toLowerCase()); + @Override + public Map<SchemaVersion, List<String>> getEdgeFiles() { + List<SchemaVersion> versionsToGen = new ArrayList<>(); + versionsToGen = schemaVersions.getVersions(); + Collections.sort(versionsToGen); + Collections.reverse(versionsToGen); + Map<SchemaVersion, List<String>> mp = new TreeMap<>(); + for (SchemaVersion v : versionsToGen) { + File dir = new File(bean.getEdgeDirectory()); + File[] fileSet = dir.listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.contains("_" + v.toString().toLowerCase()); + } + }); + List<String> files = new ArrayList<>(); + for (File f : fileSet) { + files.add(f.getAbsolutePath()); + } + mp.put(v, files); } - }); - List<String> files = new ArrayList<>(); - for(File f: fileSet ) { - files.add(f.getAbsolutePath()); - } - mp.put(v, files); + return mp; } - return mp; - } } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java index a570d6f..969bdf9 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteFootnoteSet.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,41 +17,48 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.schemagen.genxsd; import java.util.Set; import java.util.TreeSet; public class DeleteFootnoteSet { - protected Set<String> footnotes = new TreeSet<>(); - protected String targetNode = "<NodeType>"; - public DeleteFootnoteSet(String targetNode) { - super(); - this.targetNode = targetNode == null ? "" : targetNode; - } + protected Set<String> footnotes = new TreeSet<>(); + protected String targetNode = "<NodeType>"; + + public DeleteFootnoteSet(String targetNode) { + super(); + this.targetNode = targetNode == null ? "" : targetNode; + } - public void add(String s ) { - String fullnote=null; - if("(1)".equals(s)) { - fullnote = s+" IF this "+targetNode.toUpperCase()+" node is deleted, this FROM node is DELETED also"; - } else if("(2)".equals(s)) { - fullnote = s+" IF this "+targetNode.toUpperCase()+" node is deleted, this TO node is DELETED also"; - } else if("(3)".equals(s)) { - fullnote = s+" IF this FROM node is deleted, this "+targetNode.toUpperCase()+" is DELETED also"; - } else if("(4)".equals(s)) { - fullnote = s+" IF this TO node is deleted, this "+targetNode.toUpperCase()+" is DELETED also"; - } else if(s.contains(targetNode.toUpperCase())) { - fullnote = s; - } else { - return; + public void add(String s) { + String fullnote = null; + if ("(1)".equals(s)) { + fullnote = s + " IF this " + targetNode.toUpperCase() + + " node is deleted, this FROM node is DELETED also"; + } else if ("(2)".equals(s)) { + fullnote = s + " IF this " + targetNode.toUpperCase() + + " node is deleted, this TO node is DELETED also"; + } else if ("(3)".equals(s)) { + fullnote = s + " IF this FROM node is deleted, this " + targetNode.toUpperCase() + + " is DELETED also"; + } else if ("(4)".equals(s)) { + fullnote = s + " IF this TO node is deleted, this " + targetNode.toUpperCase() + + " is DELETED also"; + } else if (s.contains(targetNode.toUpperCase())) { + fullnote = s; + } else { + return; + } + footnotes.add(fullnote); } - footnotes.add(fullnote); - } - public String toString() { - StringBuilder sb = new StringBuilder(); - if(footnotes.size() > 0) sb.append("\n -"); - sb.append(String.join("\n -", footnotes)+"\n"); - return sb.toString(); - } + public String toString() { + StringBuilder sb = new StringBuilder(); + if (footnotes.size() > 0) + sb.append("\n -"); + sb.append(String.join("\n -", footnotes) + "\n"); + return sb.toString(); + } } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java index c59e8f0..8c7ecce 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/DeleteOperation.java @@ -22,6 +22,7 @@ package org.onap.aai.schemagen.genxsd; import java.util.HashMap; import java.util.StringTokenizer; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.schemagen.GenerateXsd; @@ -35,7 +36,7 @@ public class DeleteOperation { public static HashMap<String, String> deletePaths = new HashMap<String, String>(); public DeleteOperation(String useOpId, String xmlRootElementName, String tag, String path, - String pathParams) { + String pathParams) { super(); this.useOpId = useOpId; this.xmlRootElementName = xmlRootElementName; @@ -48,7 +49,7 @@ public class DeleteOperation { public String toString() { StringTokenizer st; st = new StringTokenizer(path, "/"); - //a valid tag is necessary + // a valid tag is necessary if (StringUtils.isEmpty(tag)) { return ""; } @@ -61,9 +62,9 @@ public class DeleteOperation { if (path.startsWith("/search")) { return ""; } - //All Delete operation paths end with "relationship" - //or there is a parameter at the end of the path - //and there is a parameter in the path + // All Delete operation paths end with "relationship" + // or there is a parameter at the end of the path + // and there is a parameter in the path if (!path.endsWith("/relationship") && !path.endsWith("}")) { return ""; @@ -72,8 +73,7 @@ public class DeleteOperation { pathSb.append(" delete:\n"); pathSb.append(" tags:\n"); pathSb.append(" - ").append(tag).append("\n"); - pathSb.append(" summary: delete an existing ").append(xmlRootElementName) - .append("\n"); + pathSb.append(" summary: delete an existing ").append(xmlRootElementName).append("\n"); pathSb.append(" description: delete an existing ").append(xmlRootElementName) .append("\n"); diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java index 5bdb87e..585e14e 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/EdgeDescription.java @@ -40,17 +40,17 @@ public class EdgeDescription { public EdgeDescription(EdgeRule ed) { super(); - if (ed.getDirection().toString().equals(ed.getContains()) && - AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + if (ed.getDirection().toString().equals(ed.getContains()) + && AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { this.lineageType = LineageType.PARENT; - } else if (AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) && - ed.getDirection().toString().equals(ed.getContains())) { + } else if (AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) + && ed.getDirection().toString().equals(ed.getContains())) { this.lineageType = LineageType.CHILD; - } else if (AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getContains())) && - AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getDirection()))) { + } else if (AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getContains())) + && AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getDirection()))) { this.lineageType = LineageType.PARENT; - } else if (AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) && - AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { + } else if (AAIDirection.getValue("IN").equals(AAIDirection.getValue(ed.getContains())) + && AAIDirection.getValue("OUT").equals(AAIDirection.getValue(ed.getDirection()))) { this.lineageType = LineageType.PARENT; } else { this.lineageType = LineageType.UNRELATED; @@ -153,21 +153,18 @@ public class EdgeDescription { } } if (result.length() == 0) { - result = String - .join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo() + ",", - this.getMultiplicity()); + result = String.join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo() + ",", + this.getMultiplicity()); } } else { if (LineageType.PARENT == lineageType) { result = " (PARENT of " + otherNodeName; - result = String - .join(" ", result + ",", ed.getFrom(), this.getShortLabel(), ed.getTo() + ",", - this.getMultiplicity()); + result = String.join(" ", result + ",", ed.getFrom(), this.getShortLabel(), + ed.getTo() + ",", this.getMultiplicity()); } if (result.length() == 0) { - result = String - .join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo() + ",", - this.getMultiplicity()); + result = String.join(" ", "(", ed.getFrom(), this.getShortLabel(), ed.getTo() + ",", + this.getMultiplicity()); } } @@ -187,8 +184,8 @@ public class EdgeDescription { */ public boolean hasDelTarget() { - return StringUtils.isNotEmpty(ed.getDeleteOtherV()) && - (!"NONE".equalsIgnoreCase(ed.getDeleteOtherV())); + return StringUtils.isNotEmpty(ed.getDeleteOtherV()) + && (!"NONE".equalsIgnoreCase(ed.getDeleteOtherV())); } /** diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java index f9d1799..6228f86 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/GetOperation.java @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; import java.util.Vector; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.schemagen.GenerateXsd; @@ -31,8 +32,7 @@ public class GetOperation { static Map<String, Vector<String>> containers = new HashMap<String, Vector<String>>(); public static void addContainerProps(String container, Vector<String> containerProps) { - containers.put(container, containerProps); - ; + containers.put(container, containerProps);; } private String useOpId; @@ -43,23 +43,23 @@ public class GetOperation { private String queryParams; public GetOperation(String useOpId, String xmlRootElementName, String tag, String path, - String pathParams) { + String pathParams) { super(); this.useOpId = useOpId; this.xmlRootElementName = xmlRootElementName; this.tag = tag; this.path = path; this.pathParams = pathParams; -// StringBuilder p = new StringBuilder(); + // StringBuilder p = new StringBuilder(); if (containers.get(xmlRootElementName) == null) { this.queryParams = ""; } else { this.queryParams = String.join("", containers.get(xmlRootElementName)); -// for(String param : containers.get(xmlRootElementName)) { -// p.append(param); -// } -// this.queryParams = p.toString(); + // for(String param : containers.get(xmlRootElementName)) { + // p.append(param); + // } + // this.queryParams = p.toString(); } } @@ -67,13 +67,13 @@ public class GetOperation { public String toString() { StringTokenizer st; st = new StringTokenizer(path, "/"); - //Path has to be longer than one element - /* - if ( st.countTokens() <= 1) { - return ""; - } - */ - //a valid tag is necessary + // Path has to be longer than one element + /* + * if ( st.countTokens() <= 1) { + * return ""; + * } + */ + // a valid tag is necessary if (StringUtils.isEmpty(tag)) { return ""; } @@ -116,9 +116,9 @@ public class GetOperation { if (StringUtils.isNotEmpty(pathParams)) { pathSb.append(pathParams); } -// if ( StringUtils.isNotEmpty(pathParams) && StringUtils.isNotEmpty(queryParams)) { -// pathSb.append("\n"); -// } + // if ( StringUtils.isNotEmpty(pathParams) && StringUtils.isNotEmpty(queryParams)) { + // pathSb.append("\n"); + // } if (StringUtils.isNotEmpty(queryParams)) { pathSb.append(queryParams); } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java index 01598a0..980a3f3 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/HTMLfromOXM.java @@ -26,7 +26,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; + import javax.xml.parsers.ParserConfigurationException; + import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; import org.onap.aai.nodes.NodeIngestor; @@ -47,7 +49,7 @@ public class HTMLfromOXM extends OxmFileProcessor { private String maxOccurs; public HTMLfromOXM(String maxOccurs, SchemaVersions schemaVersions, NodeIngestor ni, - EdgeIngestor ei) { + EdgeIngestor ei) { super(schemaVersions, ni, ei); this.maxOccurs = maxOccurs; } @@ -67,7 +69,6 @@ public class HTMLfromOXM extends OxmFileProcessor { this.v = v; } - @Override public String getDocumentHeader() { StringBuilder sb = new StringBuilder(); @@ -86,15 +87,13 @@ public class HTMLfromOXM extends OxmFileProcessor { .append(LINE_SEPARATOR).append("xmlns:jaxb=\"http://java.sun.com/xml/ns/jaxb\"") .append(LINE_SEPARATOR).append(" jaxb:version=\"2.1\"").append(LINE_SEPARATOR) .append(" xmlns:annox=\"http://annox.dev.java.net\"").append(LINE_SEPARATOR) - .append(" jaxb:extensionBindingPrefixes=\"annox\">") - .append(DOUBLE_LINE_SEPARATOR); + .append(" jaxb:extensionBindingPrefixes=\"annox\">").append(DOUBLE_LINE_SEPARATOR); return sb.toString(); } @Override - public String process() - throws ParserConfigurationException, SAXException, IOException, FileNotFoundException, - EdgeRuleNotFoundException { + public String process() throws ParserConfigurationException, SAXException, IOException, + FileNotFoundException, EdgeRuleNotFoundException { StringBuilder sb = new StringBuilder(); try { @@ -119,7 +118,7 @@ public class HTMLfromOXM extends OxmFileProcessor { elem = getJavaTypeElement(javaTypeName, false); } XSDElement javaTypeElement = new XSDElement(elem, maxOccurs); - //javaTypeName = javaTypeElement.name(); + // javaTypeName = javaTypeElement.name(); if (javaTypeName == null) { String msg = "Invalid OXM file: <java-type> has no name attribute in " + oxmFile; logger.error(msg); @@ -129,8 +128,8 @@ public class HTMLfromOXM extends OxmFileProcessor { logger.debug("skipping Nodes entry (temporary feature)"); continue; } - logger.debug(getXmlRootElementName(javaTypeName) + " vs " + javaTypeName + ":" + - generatedJavaType.containsKey(getXmlRootElementName(javaTypeName))); + logger.debug(getXmlRootElementName(javaTypeName) + " vs " + javaTypeName + ":" + + generatedJavaType.containsKey(getXmlRootElementName(javaTypeName))); if (!"Inventory".equals(javaTypeName)) { generatedJavaType.put(javaTypeName, null); @@ -154,15 +153,14 @@ public class HTMLfromOXM extends OxmFileProcessor { } protected boolean skipCheck(String javaAttribute) { - if (javaAttribute.equals("model") - || javaAttribute.equals("eventHeader")) { + if (javaAttribute.equals("model") || javaAttribute.equals("eventHeader")) { return true; } return false; } public String processJavaTypeElement(String javaTypeName, Element javaType_Element, - StringBuilder sbInventory) { + StringBuilder sbInventory) { String xmlRootElementName = getXMLRootElementName(javaType_Element); NodeList parentNodes = javaType_Element.getElementsByTagName("java-attributes"); @@ -203,13 +201,14 @@ public class HTMLfromOXM extends OxmFileProcessor { XSDElement xmlElementElement = new XSDElement((Element) xmlElementNodes.item(i), maxOccurs); -// String elementName = xmlElementElement.getAttribute("name"); + // String elementName = xmlElementElement.getAttribute("name"); String elementType = xmlElementElement.getAttribute("type"); - //No simple types; only AAI custom types - String addType = elementType.contains("." + v.toString() + ".") ? - elementType.substring(elementType.lastIndexOf('.') + 1) : null; - if (elementType.contains("." + v.toString() + ".") && - !generatedJavaType.containsKey(addType)) { + // No simple types; only AAI custom types + String addType = elementType.contains("." + v.toString() + ".") + ? elementType.substring(elementType.lastIndexOf('.') + 1) + : null; + if (elementType.contains("." + v.toString() + ".") + && !generatedJavaType.containsKey(addType)) { generatedJavaType.put(addType, elementType); javatypeElement = getJavaTypeElement(addType, processingInventory); sb.append(processJavaTypeElement(addType, javatypeElement, null)); @@ -218,7 +217,7 @@ public class HTMLfromOXM extends OxmFileProcessor { logger.trace("Skipping nodes, temporary testing"); continue; } - //assembles the basic <element> + // assembles the basic <element> sb1.append(xmlElementElement.getHTMLElement(v, true, this)); } if (!processingInventory) { diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java index bdfdfd6..24c34d9 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodeGetOperation.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; import java.util.Vector; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.schemagen.GenerateXsd; @@ -55,7 +56,7 @@ public class NodeGetOperation { private String queryParams; public NodeGetOperation(String useOpId, String xmlRootElementName, String tag, String path, - String pathParams) { + String pathParams) { super(); this.useOpId = useOpId; this.xmlRootElementName = xmlRootElementName; @@ -89,13 +90,13 @@ public class NodeGetOperation { public String toString() { StringTokenizer st; st = new StringTokenizer(CRUDpath, "/"); - //Path has to be longer than one element - /* - if ( st.countTokens() <= 1) { - return ""; - } - */ - //a valid tag is necessary + // Path has to be longer than one element + /* + * if ( st.countTokens() <= 1) { + * return ""; + * } + */ + // a valid tag is necessary if (StringUtils.isEmpty(tag)) { return ""; } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java index c42aaed..8bceb5c 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/NodesYAMLfromOXM.java @@ -21,6 +21,7 @@ package org.onap.aai.schemagen.genxsd; import com.google.common.collect.Multimap; + import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -39,7 +40,9 @@ import java.util.StringTokenizer; import java.util.TreeMap; import java.util.TreeSet; import java.util.Vector; + import javax.xml.parsers.ParserConfigurationException; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.edges.EdgeRule; @@ -69,7 +72,7 @@ public class NodesYAMLfromOXM extends OxmFileProcessor { private final String basePath; public NodesYAMLfromOXM(String basePath, SchemaVersions schemaVersions, NodeIngestor ni, - EdgeIngestor ei) { + EdgeIngestor ei) { super(schemaVersions, ni, ei); this.basePath = basePath; } @@ -95,14 +98,18 @@ public class NodesYAMLfromOXM extends OxmFileProcessor { sb.append("\n\n [Differences versus the previous schema version](" + "apidocs") .append(basePath).append("/aai_swagger_").append(v.toString()).append(".diff)"); } - sb.append(DOUBLE_LINE_SEPARATOR).append( - " Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.") - .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR).append( - " Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.") - .append(DOUBLE_LINE_SEPARATOR).append( - " You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)") - .append(DOUBLE_LINE_SEPARATOR).append( - " Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.") + sb.append(DOUBLE_LINE_SEPARATOR) + .append( + " Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.") + .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR) + .append( + " Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.") + .append(DOUBLE_LINE_SEPARATOR) + .append( + " You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)") + .append(DOUBLE_LINE_SEPARATOR) + .append( + " Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.") .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR) .append(" This document is best viewed with Firefox or Chrome. "); sb.append( @@ -201,9 +208,8 @@ public class NodesYAMLfromOXM extends OxmFileProcessor { if (namespaceFilter != null && (!namespaceFilter.contains(entry.getKey()))) { continue; } - logger.debug( - "Key: " + entry.getKey() + "Test: " + - ("relationship-dict".equals(entry.getKey()) ? "true" : "false")); + logger.debug("Key: " + entry.getKey() + "Test: " + + ("relationship-dict".equals(entry.getKey()) ? "true" : "false")); if (entry.getKey().matches("relationship-dict")) { String jb = entry.getValue(); logger.debug("Value: " + jb); @@ -235,8 +241,7 @@ public class NodesYAMLfromOXM extends OxmFileProcessor { return dictSb.toString(); } - private String processJavaTypeElementSwagger( - String javaTypeName, Element javaTypeElement, + private String processJavaTypeElementSwagger(String javaTypeName, Element javaTypeElement, StringBuilder pathSb, StringBuilder definitionsSb, String path, String tag, String opId, String getItemName, StringBuilder pathParams, String validEdges) { @@ -650,18 +655,16 @@ public class NodesYAMLfromOXM extends OxmFileProcessor { private void writeYAMLfile(String outfileName, String fileContent) { outfileName = (StringUtils.isEmpty(outfileName)) ? "aai_swagger" : outfileName; - outfileName = (outfileName.lastIndexOf(File.separator) == -1) - ? YAML_DIR + File.separator + outfileName + "_" + v.toString() + "." + - GENERATE_TYPE_YAML - : outfileName; + outfileName = (outfileName.lastIndexOf(File.separator) == -1) ? YAML_DIR + File.separator + + outfileName + "_" + v.toString() + "." + GENERATE_TYPE_YAML : outfileName; File outfile = new File(outfileName); File parentDir = outfile.getParentFile(); if (parentDir != null && !parentDir.exists()) { parentDir.mkdirs(); } try { - if(!outfile.createNewFile()) { - logger.error( "File {} already exist", outfileName); + if (!outfile.createNewFile()) { + logger.error("File {} already exist", outfileName); } } catch (IOException e) { logger.error("Exception creating output file " + outfileName, e); diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java index 224192a..fde0877 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/OxmFileProcessor.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.StringReader; +import java.util.*; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -31,10 +32,12 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; + import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; + import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.edges.exceptions.EdgeRuleNotFoundException; import org.onap.aai.nodes.NodeIngestor; @@ -49,16 +52,6 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import javax.xml.XMLConstants; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.StringReader; -import java.util.*; - public abstract class OxmFileProcessor { public static final String LINE_SEPARATOR = System.getProperty("line.separator"); diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java index b52e34b..652117d 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PatchOperation.java @@ -21,6 +21,7 @@ package org.onap.aai.schemagen.genxsd; import java.util.StringTokenizer; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.schemagen.GenerateXsd; import org.onap.aai.setup.SchemaVersion; @@ -36,7 +37,7 @@ public class PatchOperation { private String basePath; public PatchOperation(String useOpId, String xmlRootElementName, String tag, String path, - String pathParams, SchemaVersion v, String basePath) { + String pathParams, SchemaVersion v, String basePath) { super(); this.useOpId = useOpId; this.xmlRootElementName = xmlRootElementName; @@ -55,7 +56,7 @@ public class PatchOperation { public String toString() { StringTokenizer st; st = new StringTokenizer(path, "/"); - //a valid tag is necessary + // a valid tag is necessary if (StringUtils.isEmpty(tag)) { return ""; } @@ -68,7 +69,7 @@ public class PatchOperation { if (path.startsWith("/search")) { return ""; } - //No Patch operation paths end with "relationship" + // No Patch operation paths end with "relationship" if (path.endsWith("/relationship")) { return ""; @@ -95,8 +96,7 @@ public class PatchOperation { pathSb.append(" summary: update an existing ").append(xmlRootElementName) .append("\n"); pathSb.append(" description: |\n"); - pathSb.append(" Update an existing ").append(xmlRootElementName) - .append("\n"); + pathSb.append(" Update an existing ").append(xmlRootElementName).append("\n"); pathSb.append(" #\n"); pathSb.append( " Note: Endpoints that are not devoted to object relationships support both PUT and PATCH operations.\n"); @@ -126,8 +126,8 @@ public class PatchOperation { pathSb.append(" - name: body\n"); pathSb.append(" in: body\n"); pathSb.append(" description: ").append(xmlRootElementName) - .append(" object that needs to be updated.") - .append(relationshipExamplesSb.toString()).append("\n"); + .append(" object that needs to be updated.").append(relationshipExamplesSb.toString()) + .append("\n"); pathSb.append(" required: true\n"); pathSb.append(" schema:\n"); pathSb.append(" $ref: \"#/definitions/").append(prefixForPatch) diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java index d1e7ca5..a4c6a51 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutOperation.java @@ -37,7 +37,7 @@ public class PutOperation { private String basePath; public PutOperation(String useOpId, String xmlRootElementName, String tag, String path, - String pathParams, SchemaVersion v, String basePath) { + String pathParams, SchemaVersion v, String basePath) { super(); this.useOpId = useOpId; this.xmlRootElementName = xmlRootElementName; @@ -50,13 +50,13 @@ public class PutOperation { @Override public String toString() { - //a valid tag is necessary + // a valid tag is necessary if (StringUtils.isEmpty(tag)) { return ""; } - //All Put operation paths end with "relationship" - //or there is a parameter at the end of the path - //and there is a parameter in the path + // All Put operation paths end with "relationship" + // or there is a parameter at the end of the path + // and there is a parameter in the path if (path.contains("/" + RELATIONSHIP + "/")) { // filter paths with relationship-list return ""; } @@ -81,11 +81,11 @@ public class PutOperation { if (path.endsWith("/" + RELATIONSHIP)) { pathSb.append(" summary: see node definition for valid relationships\n"); } else { - pathSb.append(" summary: create or update an existing ") - .append(xmlRootElementName).append("\n"); + pathSb.append(" summary: create or update an existing ").append(xmlRootElementName) + .append("\n"); pathSb.append(" description: |\n Create or update an existing ") .append(xmlRootElementName).append( - ".\n #\n Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n"); + ".\n #\n Note! This PUT method has a corresponding PATCH method that can be used to update just a few of the fields of an existing object, rather than a full object replacement. An example can be found in the [PATCH section] below\n"); } relationshipExamplesSb.append("[Valid relationship examples shown here](apidocs") .append(basePath).append("/relations/").append(version.toString()).append("/") diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java index 43abb1e..fff28fc 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/PutRelationPathSet.java @@ -21,6 +21,7 @@ package org.onap.aai.schemagen.genxsd; import com.google.common.collect.Multimap; + import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; @@ -28,6 +29,7 @@ import java.util.HashMap; import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; + import org.apache.commons.text.similarity.LevenshteinDistance; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.edges.EdgeRule; @@ -61,9 +63,8 @@ public class PutRelationPathSet { this.opId = opId; this.version = v; objectName = DeleteOperation.deletePaths.get(apiPath); - logger.debug( - "II-apiPath: " + apiPath + "\nPath: " + path + "\nopId=" + opId + "\nobjectName=" + - objectName); + logger.debug("II-apiPath: " + apiPath + "\nPath: " + path + "\nopId=" + opId + + "\nobjectName=" + objectName); } private void process(EdgeIngestor edgeIngestor) { @@ -140,15 +141,15 @@ public class PutRelationPathSet { } private void writeRelationsFile() { - File examplefilePath = new File( - GenerateXsd.getYamlDir() + "/relations/" + version.toString() + "/" + - opId.replace("RelationshipListRelationship", "") + ".json"); + File examplefilePath = + new File(GenerateXsd.getYamlDir() + "/relations/" + version.toString() + "/" + + opId.replace("RelationshipListRelationship", "") + ".json"); logger.debug(String.join("exampleFilePath: ", examplefilePath.toString())); try { if (!examplefilePath.exists()) { examplefilePath.getParentFile().mkdirs(); - if(!examplefilePath.createNewFile()) { + if (!examplefilePath.createNewFile()) { logger.debug("examplefilePath create file error"); } } @@ -199,12 +200,14 @@ public class PutRelationPathSet { int targetMaxScore = 0; for (Map.Entry<String, String> p : DeleteOperation.deletePaths.entrySet()) { if (p.getValue().equals(obj)) { - targetScore = (targetScore >= proximity.apply(apiPath, p.getKey())) ? - proximity.apply(apiPath, p.getKey()) : targetScore; + targetScore = (targetScore >= proximity.apply(apiPath, p.getKey())) + ? proximity.apply(apiPath, p.getKey()) + : targetScore; targetPath = (targetScore >= proximity.apply(apiPath, p.getKey())) ? p.getKey() : targetPath; - targetMaxScore = (targetMaxScore <= proximity.apply(apiPath, p.getKey())) ? - proximity.apply(apiPath, p.getKey()) : targetScore; + targetMaxScore = (targetMaxScore <= proximity.apply(apiPath, p.getKey())) + ? proximity.apply(apiPath, p.getKey()) + : targetScore; logger.trace(proximity.apply(apiPath, p.getKey()) + ":" + p.getKey()); logger.trace(proximity.apply(apiPath, p.getKey()) + ":" + apiPath); } @@ -238,4 +241,3 @@ public class PutRelationPathSet { } } - diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java index bbdcd70..205d16c 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDElement.java @@ -21,10 +21,12 @@ package org.onap.aai.schemagen.genxsd; import com.google.common.base.Joiner; + import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import java.util.Vector; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.setup.SchemaVersion; import org.w3c.dom.Attr; @@ -131,9 +133,9 @@ public class XSDElement implements Element { .equals(this.xmlElementElement.getAttribute("name"))) { continue; } -// This stopped working, replaced with above - should figure out why... -// if ( !xmlPropElement.getParentNode().isSameNode(this.xmlElementElement)) -// continue; + // This stopped working, replaced with above - should figure out why... + // if ( !xmlPropElement.getParentNode().isSameNode(this.xmlElementElement)) + // continue; NodeList childNodes = xmlPropElement.getElementsByTagName("xml-property"); for (int j = 0; j < childNodes.getLength(); ++j) { @@ -158,7 +160,7 @@ public class XSDElement implements Element { } } if (pathDescriptionProperty != null) { - //suppress non-printable characters in a description + // suppress non-printable characters in a description String replaceDescription = pathDescriptionProperty.replaceAll("[^\\p{ASCII}]", ""); return replaceDescription; } @@ -189,8 +191,8 @@ public class XSDElement implements Element { } if (needValue == VALUE_INDEXED_PROPS && attrValue.equals("indexedProps")) { useValue = VALUE_INDEXED_PROPS; - } else if (needValue == VALUE_DSLSTARTNODE && - attrValue.equals("dslStartNodeProps")) { + } else if (needValue == VALUE_DSLSTARTNODE + && attrValue.equals("dslStartNodeProps")) { useValue = VALUE_DSLSTARTNODE; } if (useValue != VALUE_NONE && attrName.equals("value")) { @@ -262,8 +264,8 @@ public class XSDElement implements Element { StringBuilder sbParameter = new StringBuilder(); sbParameter.append(" - name: ").append(this.getAttribute("name")).append("\n"); sbParameter.append((" in: query\n")); - if (this.getAttribute("description") != null && - this.getAttribute("description").length() > 0) { + if (this.getAttribute("description") != null + && this.getAttribute("description").length() > 0) { sbParameter.append(" description: ").append(this.getAttribute("description")) .append("\n"); } else { @@ -330,8 +332,9 @@ public class XSDElement implements Element { String elementType = this.getAttribute("type"); String elementContainerType = this.getAttribute("container-type"); String elementIsRequired = this.getAttribute("required"); - String addType = elementType.contains("." + v.toString() + ".") ? - elementType.substring(elementType.lastIndexOf('.') + 1) : null; + String addType = elementType.contains("." + v.toString() + ".") + ? elementType.substring(elementType.lastIndexOf('.') + 1) + : null; if (addType != null) { sbElement.append(" <xs:element ref=\"tns:") @@ -363,18 +366,18 @@ public class XSDElement implements Element { sbElement.append( StringUtils.isNotEmpty(annotation) ? ">" + OxmFileProcessor.LINE_SEPARATOR : ""); sbElement.append(annotation); - sbElement.append(StringUtils.isNotEmpty(annotation) ? - " </xs:element>" + OxmFileProcessor.LINE_SEPARATOR : - "/>" + OxmFileProcessor.LINE_SEPARATOR); + sbElement.append(StringUtils.isNotEmpty(annotation) + ? " </xs:element>" + OxmFileProcessor.LINE_SEPARATOR + : "/>" + OxmFileProcessor.LINE_SEPARATOR); } else { sbElement.append("/>").append(OxmFileProcessor.LINE_SEPARATOR); } return this.getHTMLElementWrapper(sbElement.toString(), v, useAnnotation); -// return sbElement.toString(); + // return sbElement.toString(); } public String getHTMLElementWrapper(String unwrappedElement, SchemaVersion v, - boolean useAnnotation) { + boolean useAnnotation) { NodeList childNodes = this.getElementsByTagName("xml-element-wrapper"); @@ -392,8 +395,9 @@ public class XSDElement implements Element { sbElement.append(" <xs:element name=\"").append(xmlElementWrapper).append("\""); String elementType = xmlElementElement.getAttribute("type"); String elementIsRequired = this.getAttribute("required"); - String addType = elementType.contains("." + v.toString() + ".") ? - elementType.substring(elementType.lastIndexOf('.') + 1) : null; + String addType = elementType.contains("." + v.toString() + ".") + ? elementType.substring(elementType.lastIndexOf('.') + 1) + : null; if (elementIsRequired == null || !elementIsRequired.equals("true") || addType != null) { sbElement.append(" minOccurs=\"0\""); @@ -799,5 +803,4 @@ public class XSDElement implements Element { xmlElementElement.setIdAttributeNode(idAttr, isId); } - } diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java index ee776b2..d8864f5 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/XSDJavaType.java @@ -30,14 +30,15 @@ public class XSDJavaType extends XSDElement { } /* - public XSDJavaType(XSDElement javaTypeElement, StringBuffer pathSb, StringBuffer definitionsSb, - StringBuffer pathParams) { - super(javaTypeElement); - this.pathSb = pathSb; - this.definitionsSb = definitionsSb; - this.pathParams = pathParams; - } - */ + * public XSDJavaType(XSDElement javaTypeElement, StringBuffer pathSb, StringBuffer + * definitionsSb, + * StringBuffer pathParams) { + * super(javaTypeElement); + * this.pathSb = pathSb; + * this.definitionsSb = definitionsSb; + * this.pathParams = pathParams; + * } + */ public String getItemName() { NodeList parentNodes = this.getElementsByTagName("java-attributes"); if (parentNodes.getLength() == 0) { @@ -57,8 +58,8 @@ public class XSDJavaType extends XSDElement { Element parentElement = (Element) parentNodes.item(0); NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); XSDElement xmlElementElement = new XSDElement((Element) xmlElementNodes.item(0)); - if (xmlElementElement.hasAttribute("container-type") && - xmlElementElement.getAttribute("container-type").equals("java.util.ArrayList")) { + if (xmlElementElement.hasAttribute("container-type") + && xmlElementElement.getAttribute("container-type").equals("java.util.ArrayList")) { return xmlElementElement.getAttribute("name"); } return null; diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java index 849b40c..ff6f7dd 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/genxsd/YAMLfromOXM.java @@ -22,6 +22,7 @@ package org.onap.aai.schemagen.genxsd; import com.google.common.base.CharMatcher; import com.google.common.collect.Multimap; + import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -40,7 +41,9 @@ import java.util.StringTokenizer; import java.util.TreeMap; import java.util.TreeSet; import java.util.Vector; + import javax.xml.parsers.ParserConfigurationException; + import org.apache.commons.lang3.StringUtils; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.edges.EdgeRule; @@ -71,7 +74,7 @@ public class YAMLfromOXM extends OxmFileProcessor { private String basePath; public YAMLfromOXM(String basePath, SchemaVersions schemaVersions, NodeIngestor ni, - EdgeIngestor ei) { + EdgeIngestor ei) { super(schemaVersions, ni, ei); this.basePath = basePath; } @@ -94,17 +97,21 @@ public class YAMLfromOXM extends OxmFileProcessor { sb.append("swagger: \"2.0\"\ninfo:").append(LINE_SEPARATOR).append(" "); sb.append("description: |"); if (versionSupportsSwaggerDiff(v.toString())) { - sb.append("\n\n [Differences versus the previous schema version](" - + "apidocs" + basePath + "/aai_swagger_" + v.toString() + ".diff)"); + sb.append("\n\n [Differences versus the previous schema version](" + "apidocs" + + basePath + "/aai_swagger_" + v.toString() + ".diff)"); } - sb.append(DOUBLE_LINE_SEPARATOR).append( - " Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.") - .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR).append( - " Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.") - .append(DOUBLE_LINE_SEPARATOR).append( - " You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)") - .append(DOUBLE_LINE_SEPARATOR).append( - " Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.") + sb.append(DOUBLE_LINE_SEPARATOR) + .append( + " Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.") + .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR) + .append( + " Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation except in compliance with the License.") + .append(DOUBLE_LINE_SEPARATOR) + .append( + " You may obtain a copy of the License at\n\n (https://creativecommons.org/licenses/by/4.0/)") + .append(DOUBLE_LINE_SEPARATOR) + .append( + " Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.") .append(OxmFileProcessor.DOUBLE_LINE_SEPARATOR) .append(" This document is best viewed with Firefox or Chrome. "); sb.append( @@ -112,8 +119,9 @@ public class YAMLfromOXM extends OxmFileProcessor { sb.append("Edge definitions can be found with the node definitions.").append(LINE_SEPARATOR) .append(" version: \"").append(v.toString()).append("\"").append(LINE_SEPARATOR); sb.append(" title: Active and Available Inventory REST API").append(LINE_SEPARATOR); - sb.append(" license:").append(LINE_SEPARATOR).append( - " name: Apache 2.0\n url: http://www.apache.org/licenses/LICENSE-2.0.html") + sb.append(" license:").append(LINE_SEPARATOR) + .append( + " name: Apache 2.0\n url: http://www.apache.org/licenses/LICENSE-2.0.html") .append(LINE_SEPARATOR); sb.append(" contact:").append(LINE_SEPARATOR).append(" name: n/a") .append(LINE_SEPARATOR).append(" url: n/a").append(LINE_SEPARATOR) @@ -238,9 +246,8 @@ public class YAMLfromOXM extends OxmFileProcessor { return dictSb.toString(); } - private String processJavaTypeElementSwagger( - String javaTypeName, Element javaTypeElement, StringBuilder pathSb, - StringBuilder definitionsSb, String path, String tag, String opId, + private String processJavaTypeElementSwagger(String javaTypeName, Element javaTypeElement, + StringBuilder pathSb, StringBuilder definitionsSb, String path, String tag, String opId, String getItemName, StringBuilder pathParams, String validEdges) { String xmlRootElementName = getXMLRootElementName(javaTypeElement); @@ -302,8 +309,9 @@ public class YAMLfromOXM extends OxmFileProcessor { NodeList xmlElementNodes = parentElement.getElementsByTagName("xml-element"); StringBuilder sbParameters = new StringBuilder(); - StringBuilder sbPathParameters = - new StringBuilder(); // separate naming path parameters from name of parameter in the schema + StringBuilder sbPathParameters = new StringBuilder(); // separate naming path parameters + // from name of parameter in the + // schema StringBuilder sbRequired = new StringBuilder(); int requiredCnt = 0; @@ -339,8 +347,8 @@ public class YAMLfromOXM extends OxmFileProcessor { // use alternate name for parameter if already in the path string modifiedName = "/{" + xmlElementElement.getAttribute("name") + "}"; if (path.contains(modifiedName)) { - modifiedName = path.substring(path.lastIndexOf('/') + 1) + "." + - xmlElementElement.getAttribute("name"); + modifiedName = path.substring(path.lastIndexOf('/') + 1) + "." + + xmlElementElement.getAttribute("name"); } else { modifiedName = xmlElementElement.getAttribute("name"); } @@ -443,9 +451,8 @@ public class YAMLfromOXM extends OxmFileProcessor { .equals(xmlElementElement.getAttribute("container-type"))) { // need properties for getXmlRootElementName(addType) namespaceFilter.add(getXmlRootElementName(addType)); - newPathParams = - new StringBuilder((pathParams == null ? "" : pathParams.toString()) - + sbParameters); + newPathParams = new StringBuilder( + (pathParams == null ? "" : pathParams.toString()) + sbParameters); processJavaTypeElementSwagger(addType, getJavaTypeElementSwagger(addType), pathSb, definitionsSb, path, tag == null ? useTag : tag, useOpId, null, newPathParams, validEdges); @@ -644,8 +651,8 @@ public class YAMLfromOXM extends OxmFileProcessor { if (patchPropertyCnt > 0) { definitionsLocalPatchSb.append(" " + patchDefinePrefix).append(xmlRootElementName) .append(":\n"); - if (StringUtils.isNotEmpty(pathDescriptionProperty) || - StringUtils.isNotEmpty(validEdges)) { + if (StringUtils.isNotEmpty(pathDescriptionProperty) + || StringUtils.isNotEmpty(validEdges)) { definitionsLocalPatchSb.append(" description: |\n"); } if (pathDescriptionProperty != null) { @@ -721,8 +728,8 @@ public class YAMLfromOXM extends OxmFileProcessor { parentDir.mkdirs(); } try { - if(!outfile.createNewFile()) { - logger.error( "File {} already exist", outfileName); + if (!outfile.createNewFile()) { + logger.error("File {} already exist", outfileName); } } catch (IOException e) { logger.error("Exception creating output file " + outfileName, e); @@ -747,4 +754,3 @@ public class YAMLfromOXM extends OxmFileProcessor { } } - diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java index a3adcd8..1dad255 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Api.java @@ -17,6 +17,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.schemagen.swagger; import java.util.List; diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java index 9df9842..8919857 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/Definition.java @@ -17,7 +17,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - + package org.onap.aai.schemagen.swagger; import java.util.List; diff --git a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java index 6663dc4..39b1e83 100644 --- a/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java +++ b/aai-schema-gen/src/main/java/org/onap/aai/schemagen/swagger/GenerateSwagger.java @@ -8,7 +8,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,75 +17,80 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.schemagen.swagger; import com.fasterxml.jackson.dataformat.yaml.snakeyaml.Yaml; import com.fasterxml.jackson.dataformat.yaml.snakeyaml.constructor.SafeConstructor; + import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; -import org.onap.aai.setup.SchemaVersions; import java.io.*; import java.util.*; import java.util.stream.Collectors; +import org.onap.aai.setup.SchemaVersions; + public class GenerateSwagger { public static final String LINE_SEPARATOR = System.getProperty("line.separator"); public static final String DEFAULT_WIKI = ""; public static final String DEFAULT_SCHEMA_DIR = "../aai-schema"; - //if the program is run from aai-common, use this directory as default" + // if the program is run from aai-common, use this directory as default" public static final String ALT_SCHEMA_DIR = "aai-schema"; - //used to check to see if program is run from aai-schema-gen + // used to check to see if program is run from aai-schema-gen public static final String DEFAULT_RUN_DIR = "aai-schema-gen"; - public static SchemaVersions schemaVersions; + public static SchemaVersions schemaVersions; public SchemaVersions getSchemaVersions() { - return schemaVersions; - } - - - - public static void main(String[] args) throws IOException, TemplateException { - - + return schemaVersions; + } + public static void main(String[] args) throws IOException, TemplateException { - // SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); - String CURRENT_VERSION = schemaVersions.getDefaultVersion().toString(); - String schemaDir = System.getProperty("aai.schema.dir"); + // SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class); + String CURRENT_VERSION = schemaVersions.getDefaultVersion().toString(); + String schemaDir = System.getProperty("aai.schema.dir"); String versionToGenerate = System.getProperty("aai.generate.version"); String wikiLink = System.getProperty("aai.wiki.link"); - String release = System.getProperty("aai.release", "onap"); - - if(schemaDir == null){ - if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { - System.out.println("Warning: Schema directory is not set so using default schema dir: " + ALT_SCHEMA_DIR); - schemaDir = ALT_SCHEMA_DIR; - } - else { - System.out.println("Warning: Schema directory is not set so using default schema dir: " + DEFAULT_SCHEMA_DIR); - schemaDir = DEFAULT_SCHEMA_DIR; - } + String release = System.getProperty("aai.release", "onap"); + + if (schemaDir == null) { + if (System.getProperty("user.dir") != null + && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + System.out + .println("Warning: Schema directory is not set so using default schema dir: " + + ALT_SCHEMA_DIR); + schemaDir = ALT_SCHEMA_DIR; + } else { + System.out + .println("Warning: Schema directory is not set so using default schema dir: " + + DEFAULT_SCHEMA_DIR); + schemaDir = DEFAULT_SCHEMA_DIR; + } } - if(versionToGenerate == null){ - System.out.println("Warning: Version to generate is not set so using default versionToGenerate " + CURRENT_VERSION); + if (versionToGenerate == null) { + System.out.println( + "Warning: Version to generate is not set so using default versionToGenerate " + + CURRENT_VERSION); versionToGenerate = CURRENT_VERSION; } - if(wikiLink == null){ + if (wikiLink == null) { System.out.println("Warning: aai.wiki.link property is not set so using default"); wikiLink = DEFAULT_WIKI; } - String yamlFile = schemaDir + "/src/main/resources/" + release + "/aai_swagger_yaml/aai_swagger_" + versionToGenerate + ".yaml"; + String yamlFile = schemaDir + "/src/main/resources/" + release + + "/aai_swagger_yaml/aai_swagger_" + versionToGenerate + ".yaml"; File swaggerYamlFile = new File(yamlFile); - if(!swaggerYamlFile.exists()){ + if (!swaggerYamlFile.exists()) { System.err.println("Unable to find the swagger yaml file: " + swaggerYamlFile); System.exit(1); } @@ -93,21 +98,23 @@ public class GenerateSwagger { Yaml yaml = new Yaml(new SafeConstructor()); Map<String, Object> swaggerMap = null; - try (BufferedReader reader = new BufferedReader(new FileReader(swaggerYamlFile))){ + try (BufferedReader reader = new BufferedReader(new FileReader(swaggerYamlFile))) { swaggerMap = (Map<String, Object>) yaml.load(reader); - } catch(Exception ex){ - System.err.println("Unable load yaml file: " + swaggerYamlFile + " : " + ex.getMessage()); + } catch (Exception ex) { + System.err + .println("Unable load yaml file: " + swaggerYamlFile + " : " + ex.getMessage()); throw new IOException(); } Map<String, Object> map = (Map<String, Object>) swaggerMap.get("paths"); - Map<String, Object> schemaDefinitionmap = (Map<String, Object>) swaggerMap.get("definitions"); + Map<String, Object> schemaDefinitionmap = + (Map<String, Object>) swaggerMap.get("definitions"); Map<String, Object> infoMap = (Map<String, Object>) swaggerMap.get("info"); Map<String, List<Api>> tagMap = new LinkedHashMap<>(); List<Api> apis = convertToApi(map); apis.forEach((api) -> { - if(!tagMap.containsKey(api.getTag())){ + if (!tagMap.containsKey(api.getTag())) { List<Api> newApis = new ArrayList<>(); newApis.add(api); tagMap.put(api.getTag(), newApis); @@ -125,8 +132,9 @@ public class GenerateSwagger { List<Definition> definitionList = convertToDefinition(schemaDefinitionmap); - definitionList = definitionList - .stream().sorted(Comparator.comparing(Definition::getDefinitionName)).collect(Collectors.toList()); + definitionList = + definitionList.stream().sorted(Comparator.comparing(Definition::getDefinitionName)) + .collect(Collectors.toList()); resultMap.put("aaiApis", tagMap); resultMap.put("sortedAaiApis", sortedTagMap); @@ -136,23 +144,22 @@ public class GenerateSwagger { if (infoMap.containsKey("description")) { String infoDescription = infoMap.get("description").toString(); - infoDescription = Arrays.stream(infoDescription.split("\n")) - .map(line -> { - line = line.trim(); - String hyperLink = ""; - if(line.trim().contains("Differences versus")) { - return ""; - } - if(line.trim().contains("https://")){ - int startIndex = line.indexOf("https://"); - int endIndex = line.lastIndexOf("/"); - hyperLink = line.substring(startIndex, endIndex); - return String.format("<a href=\"%s\">%s</a><br/>", hyperLink, line); - } - return String.format("%s<br/>", line); - }) + infoDescription = Arrays.stream(infoDescription.split("\n")).map(line -> { + line = line.trim(); + String hyperLink = ""; + if (line.trim().contains("Differences versus")) { + return ""; + } + if (line.trim().contains("https://")) { + int startIndex = line.indexOf("https://"); + int endIndex = line.lastIndexOf("/"); + hyperLink = line.substring(startIndex, endIndex); + return String.format("<a href=\"%s\">%s</a><br/>", hyperLink, line); + } + return String.format("%s<br/>", line); + }) - .collect(Collectors.joining(LINE_SEPARATOR)); + .collect(Collectors.joining(LINE_SEPARATOR)); resultMap.put("description", infoDescription); } @@ -160,11 +167,12 @@ public class GenerateSwagger { Configuration configuration = new Configuration(); configuration.setClassForTemplateLoading(Api.class, "/"); String resourcePath = "src/main/resources"; - if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { - configuration.setDirectoryForTemplateLoading(new File(DEFAULT_RUN_DIR + "/" + resourcePath)); - } - else { - configuration.setDirectoryForTemplateLoading(new File(resourcePath)); + if (System.getProperty("user.dir") != null + && !System.getProperty("user.dir").contains(DEFAULT_RUN_DIR)) { + configuration + .setDirectoryForTemplateLoading(new File(DEFAULT_RUN_DIR + "/" + resourcePath)); + } else { + configuration.setDirectoryForTemplateLoading(new File(resourcePath)); } Template template = configuration.getTemplate("swagger.html.ftl"); @@ -172,29 +180,31 @@ public class GenerateSwagger { File outputDir = new File(outputDirStr); - if(!outputDir.exists()){ + if (!outputDir.exists()) { boolean resp = outputDir.mkdir(); - if(!resp){ + if (!resp) { System.err.println("Unable to create the directory: " + outputDirStr); System.exit(1); } - } else if(outputDir.isFile()){ - System.err.println("Unable to create the directory: " + outputDirStr + " since a filename with that string exists"); + } else if (outputDir.isFile()) { + System.err.println("Unable to create the directory: " + outputDirStr + + " since a filename with that string exists"); System.exit(1); } - Writer file = new FileWriter(new File(outputDirStr + "/aai_swagger_" + versionToGenerate + ".html")); + Writer file = + new FileWriter(new File(outputDirStr + "/aai_swagger_" + versionToGenerate + ".html")); template.process(resultMap, file); } - public static List<Api> convertToApi(Map<String, Object> pathMap){ + public static List<Api> convertToApi(Map<String, Object> pathMap) { - if(pathMap == null) + if (pathMap == null) throw new IllegalArgumentException(); List<Api> apis = new ArrayList<>(); - pathMap.forEach( (pathKey, pathValue) -> { + pathMap.forEach((pathKey, pathValue) -> { Api api = new Api(); Map<String, Object> httpVerbMap = (Map<String, Object>) pathValue; @@ -206,83 +216,85 @@ public class GenerateSwagger { Api.HttpVerb httpVerb = new Api.HttpVerb(); - Map<String, Object> httpVerbValueMap = (Map<String,Object>)httpVerbValue; + Map<String, Object> httpVerbValueMap = (Map<String, Object>) httpVerbValue; httpVerb.setType(httpVerbKey); - if(httpVerbValueMap.containsKey("tags")){ - httpVerb.setTags((List<String>)httpVerbValueMap.get("tags")); + if (httpVerbValueMap.containsKey("tags")) { + httpVerb.setTags((List<String>) httpVerbValueMap.get("tags")); } - if(httpVerbValueMap.containsKey("summary")){ - httpVerb.setSummary((String)httpVerbValueMap.get("summary")); + if (httpVerbValueMap.containsKey("summary")) { + httpVerb.setSummary((String) httpVerbValueMap.get("summary")); } - if(httpVerbValueMap.containsKey("operationId")){ - httpVerb.setOperationId((String)httpVerbValueMap.get("operationId")); + if (httpVerbValueMap.containsKey("operationId")) { + httpVerb.setOperationId((String) httpVerbValueMap.get("operationId")); } - if(httpVerbValueMap.containsKey("consumes")){ - httpVerb.setConsumes((List<String>)httpVerbValueMap.get("consumes")); - if(httpVerb.getConsumes() != null){ + if (httpVerbValueMap.containsKey("consumes")) { + httpVerb.setConsumes((List<String>) httpVerbValueMap.get("consumes")); + if (httpVerb.getConsumes() != null) { httpVerb.setConsumerEnabled(true); } } - if(httpVerbValueMap.containsKey("produces")){ - httpVerb.setProduces((List<String>)httpVerbValueMap.get("produces")); + if (httpVerbValueMap.containsKey("produces")) { + httpVerb.setProduces((List<String>) httpVerbValueMap.get("produces")); } - if(httpVerbValueMap.containsKey("parameters")){ - List<Map<String, Object>> parameters = (List<Map<String, Object>>) httpVerbValueMap.get("parameters"); - List<Map<String, Object>> requestParameters = parameters - .stream() - .filter((parameter) -> !parameter.get("name").equals("body")) - .collect(Collectors.toList()); + if (httpVerbValueMap.containsKey("parameters")) { + List<Map<String, Object>> parameters = + (List<Map<String, Object>>) httpVerbValueMap.get("parameters"); + List<Map<String, Object>> requestParameters = parameters.stream() + .filter((parameter) -> !parameter.get("name").equals("body")) + .collect(Collectors.toList()); httpVerb.setParameters(requestParameters); - if(httpVerb.getParameters() != null){ + if (httpVerb.getParameters() != null) { httpVerb.setParametersEnabled(true); } - List<Map<String, Object>> requestBodyList = parameters - .stream() - .filter((parameter) -> parameter.get("name").equals("body")) - .collect(Collectors.toList()); + List<Map<String, Object>> requestBodyList = parameters.stream() + .filter((parameter) -> parameter.get("name").equals("body")) + .collect(Collectors.toList()); Map<String, Object> requestBody = null; - if(requestBodyList != null && requestBodyList.size() == 1){ + if (requestBodyList != null && requestBodyList.size() == 1) { requestBody = requestBodyList.get(0); - for(String key : requestBody.keySet()) { - //Filter out all the relationship links that appear in the YAML - if(key.equals("description")) { - String reqBody=(String)requestBody.get(key); - if(!reqBody.replaceAll("\\[.*.json\\)", "").equals(reqBody)) { - requestBody.put(key, reqBody.replaceAll("\\[.*.json\\)", "")); + for (String key : requestBody.keySet()) { + // Filter out all the relationship links that appear in the YAML + if (key.equals("description")) { + String reqBody = (String) requestBody.get(key); + if (!reqBody.replaceAll("\\[.*.json\\)", "").equals(reqBody)) { + requestBody.put(key, reqBody.replaceAll("\\[.*.json\\)", "")); + } } - } - //Filter out all the patchDefinition links that appear in the YAML - if(key.equals("schema")) { - LinkedHashMap<String,String> reqBody = (LinkedHashMap<String,String>)requestBody.get(key); - String schema=reqBody.get("$ref"); - String schemaNopatch = schema.replace("patchDefinitions", "definitions"); - - if(! schema.equals(schemaNopatch)) { - reqBody.put("$ref", schemaNopatch); - requestBody.put(key, reqBody); + // Filter out all the patchDefinition links that appear in the YAML + if (key.equals("schema")) { + LinkedHashMap<String, String> reqBody = + (LinkedHashMap<String, String>) requestBody.get(key); + String schema = reqBody.get("$ref"); + String schemaNopatch = + schema.replace("patchDefinitions", "definitions"); + + if (!schema.equals(schemaNopatch)) { + reqBody.put("$ref", schemaNopatch); + requestBody.put(key, reqBody); + } } - } } httpVerb.setBodyParametersEnabled(true); httpVerb.setBodyParameters(requestBody); - if(requestBody != null && requestBody.containsKey("schema")){ - Map<String, Object> schemaMap = (Map<String, Object>)requestBody.get("schema"); - if(schemaMap != null && schemaMap.containsKey("$ref")){ + if (requestBody != null && requestBody.containsKey("schema")) { + Map<String, Object> schemaMap = + (Map<String, Object>) requestBody.get("schema"); + if (schemaMap != null && schemaMap.containsKey("$ref")) { String schemaLink = schemaMap.get("$ref").toString(); httpVerb.setSchemaLink(schemaLink); int retCode = schemaLink.lastIndexOf('/'); - if(retCode != -1 && retCode != schemaLink.length()){ + if (retCode != -1 && retCode != schemaLink.length()) { httpVerb.setSchemaType(schemaLink.substring(retCode)); } } @@ -290,19 +302,19 @@ public class GenerateSwagger { } } - if(httpVerbValueMap.containsKey("responses")){ + if (httpVerbValueMap.containsKey("responses")) { List<Api.HttpVerb.Response> responses = new ArrayList<Api.HttpVerb.Response>(); - Map<String, Object> responsesMap = (Map<String, Object>) httpVerbValueMap.get("responses"); + Map<String, Object> responsesMap = + (Map<String, Object>) httpVerbValueMap.get("responses"); - responsesMap - .entrySet() - .stream() + responsesMap.entrySet().stream() .filter((res) -> !"default".equalsIgnoreCase(res.getKey())) .forEach((responseMap) -> { - Map<String, Object> responseValueMap = (Map<String, Object>)responseMap.getValue(); + Map<String, Object> responseValueMap = + (Map<String, Object>) responseMap.getValue(); Api.HttpVerb.Response response = new Api.HttpVerb.Response(); @@ -310,23 +322,27 @@ public class GenerateSwagger { response.setDescription((String) responseValueMap.get("description")); response.setVersion((String) responseValueMap.get("version")); - if(responseValueMap != null && responseValueMap.containsKey("schema")){ - Map<String, Object> schemaMap = (Map<String, Object>)responseValueMap.get("schema"); - if(schemaMap != null && schemaMap.containsKey("$ref")){ + if (responseValueMap != null + && responseValueMap.containsKey("schema")) { + Map<String, Object> schemaMap = + (Map<String, Object>) responseValueMap.get("schema"); + if (schemaMap != null && schemaMap.containsKey("$ref")) { String schemaLink = schemaMap.get("$ref").toString(); httpVerb.setHasReturnSchema(true); - //Filter out all the getDefinition links that appear in the YAML - httpVerb.setReturnSchemaLink(schemaLink.replace("getDefinitions", "definitions")); + // Filter out all the getDefinition links that appear in the + // YAML + httpVerb.setReturnSchemaLink( + schemaLink.replace("getDefinitions", "definitions")); int retCode = schemaLink.lastIndexOf('/'); - if(retCode != -1 && retCode != schemaLink.length()){ - httpVerb.setReturnSchemaObject(schemaLink.substring(retCode)); + if (retCode != -1 && retCode != schemaLink.length()) { + httpVerb + .setReturnSchemaObject(schemaLink.substring(retCode)); } } } responses.add(response); - } - ); + }); httpVerb.setResponses(responses); } @@ -343,145 +359,132 @@ public class GenerateSwagger { public static List<Definition> convertToDefinition(Map<String, Object> definitionMap) { - if(definitionMap == null) + if (definitionMap == null) throw new IllegalArgumentException(); List<Definition> defintionsList = new ArrayList<>(); - definitionMap - .entrySet() - .forEach((entry) -> { + definitionMap.entrySet().forEach((entry) -> { - Definition definition = new Definition(); - String key = entry.getKey(); - Map<String, Object> valueMap = (Map<String, Object>) entry.getValue(); + Definition definition = new Definition(); + String key = entry.getKey(); + Map<String, Object> valueMap = (Map<String, Object>) entry.getValue(); - definition.setDefinitionName(key); + definition.setDefinitionName(key); - if(valueMap.containsKey("description")){ - String description = valueMap.get("description").toString(); - description = formatDescription(description); - definition.setDefinitionDescription(description); - definition.setHasDescription(true); - } + if (valueMap.containsKey("description")) { + String description = valueMap.get("description").toString(); + description = formatDescription(description); + definition.setDefinitionDescription(description); + definition.setHasDescription(true); + } - List<Definition.Property> definitionProperties = new ArrayList<>(); + List<Definition.Property> definitionProperties = new ArrayList<>(); - List<String> requiredProperties = (valueMap.get("required") == null) ? new ArrayList<>() : (List<String>) valueMap.get("required"); + List<String> requiredProperties = (valueMap.get("required") == null) ? new ArrayList<>() + : (List<String>) valueMap.get("required"); - Set<String> requiredPropsSet = new HashSet<>(requiredProperties); + Set<String> requiredPropsSet = new HashSet<>(requiredProperties); - valueMap - .entrySet() - .stream() - .filter( (e) -> "properties".equals(e.getKey())) - .forEach((propertyEntries) -> { - Map<String, Object> propertyRealEntries = (Map<String, Object>) propertyEntries.getValue(); - propertyRealEntries - .forEach((propertyKey, value) -> { - Definition.Property definitionProperty = new Definition.Property(); - if (requiredPropsSet.contains(propertyKey)) { - definitionProperty.setRequired(true); - } - definitionProperty.setPropertyName(propertyKey); - Map<String, Object> definitionPropertyMap = - (Map<String, Object>) value; - - if (definitionPropertyMap.containsKey("description")) { - definitionProperty.setPropertyDescription( - definitionPropertyMap.get("description").toString()); - definitionProperty.setHasPropertyDescription(true); - } - if (definitionPropertyMap.containsKey("type")) { - String type = definitionPropertyMap.get("type").toString(); - definitionProperty.setPropertyType(type); - definitionProperty.setHasType(true); - if ("array".equals(type)) { - definitionProperty.setPropertyType("object[]"); - if (!definitionPropertyMap.containsKey("items")) { - throw new RuntimeException( - "Unable to find the property items even though the type is array for " + - propertyKey); - } else { - Map<String, Object> itemMap = - (Map<String, Object>) definitionPropertyMap - .get("items"); - if (itemMap.containsKey("$ref")) { - definitionProperty.setHasPropertyReference(true); - String refItem = itemMap.get("$ref").toString(); - int retCode = refItem.lastIndexOf('/'); - if (retCode != -1 && retCode != refItem.length()) { - definitionProperty - .setPropertyReferenceObjectName( - refItem.substring(retCode + 1)); - } - definitionProperty.setPropertyReference(refItem); - } - } - } else { - if (definitionPropertyMap.containsKey("$ref")) { - definitionProperty.setHasPropertyReference(true); - String refItem = - definitionPropertyMap.get("$ref").toString(); - int retCode = refItem.lastIndexOf('/'); - if (retCode != -1 && retCode != refItem.length()) { - definitionProperty.setPropertyReferenceObjectName( - refItem.substring(retCode + 1)); - } - definitionProperty.setPropertyReference(refItem); + valueMap.entrySet().stream().filter((e) -> "properties".equals(e.getKey())) + .forEach((propertyEntries) -> { + Map<String, Object> propertyRealEntries = + (Map<String, Object>) propertyEntries.getValue(); + propertyRealEntries.forEach((propertyKey, value) -> { + Definition.Property definitionProperty = new Definition.Property(); + if (requiredPropsSet.contains(propertyKey)) { + definitionProperty.setRequired(true); + } + definitionProperty.setPropertyName(propertyKey); + Map<String, Object> definitionPropertyMap = (Map<String, Object>) value; + + if (definitionPropertyMap.containsKey("description")) { + definitionProperty.setPropertyDescription( + definitionPropertyMap.get("description").toString()); + definitionProperty.setHasPropertyDescription(true); + } + if (definitionPropertyMap.containsKey("type")) { + String type = definitionPropertyMap.get("type").toString(); + definitionProperty.setPropertyType(type); + definitionProperty.setHasType(true); + if ("array".equals(type)) { + definitionProperty.setPropertyType("object[]"); + if (!definitionPropertyMap.containsKey("items")) { + throw new RuntimeException( + "Unable to find the property items even though the type is array for " + + propertyKey); + } else { + Map<String, Object> itemMap = + (Map<String, Object>) definitionPropertyMap.get("items"); + if (itemMap.containsKey("$ref")) { + definitionProperty.setHasPropertyReference(true); + String refItem = itemMap.get("$ref").toString(); + int retCode = refItem.lastIndexOf('/'); + if (retCode != -1 && retCode != refItem.length()) { + definitionProperty.setPropertyReferenceObjectName( + refItem.substring(retCode + 1)); } + definitionProperty.setPropertyReference(refItem); } } - definitionProperties.add(definitionProperty); - }); + } else { + if (definitionPropertyMap.containsKey("$ref")) { + definitionProperty.setHasPropertyReference(true); + String refItem = definitionPropertyMap.get("$ref").toString(); + int retCode = refItem.lastIndexOf('/'); + if (retCode != -1 && retCode != refItem.length()) { + definitionProperty.setPropertyReferenceObjectName( + refItem.substring(retCode + 1)); + } + definitionProperty.setPropertyReference(refItem); + } + } + } + definitionProperties.add(definitionProperty); }); + }); - definition.setPropertyList(definitionProperties); + definition.setPropertyList(definitionProperties); - List<Definition.Property> schemaProperties = definitionProperties. - stream() - .filter(Definition.Property::isHasPropertyReference) - .collect(Collectors.toList()); + List<Definition.Property> schemaProperties = definitionProperties.stream() + .filter(Definition.Property::isHasPropertyReference).collect(Collectors.toList()); - List<Definition.Property> regularProperties = definitionProperties. - stream() - .filter((o) -> !o.isHasPropertyReference()) - .collect(Collectors.toList()); + List<Definition.Property> regularProperties = definitionProperties.stream() + .filter((o) -> !o.isHasPropertyReference()).collect(Collectors.toList()); - definition.setRegularPropertyList(regularProperties); - definition.setSchemaPropertyList(schemaProperties); + definition.setRegularPropertyList(regularProperties); + definition.setSchemaPropertyList(schemaProperties); - defintionsList.add(definition); - }); + defintionsList.add(definition); + }); return defintionsList; } - public static String formatDescription(String description){ + public static String formatDescription(String description) { - description = Arrays.stream(description.split("\n")) - .map((line) -> { + description = Arrays.stream(description.split("\n")).map((line) -> { + line = line.trim(); + if (line.contains("######")) { + line = line.replaceAll("#", ""); line = line.trim(); - if(line.contains("######")){ - line = line.replaceAll("#", ""); - line = line.trim(); - String headerId = line.toLowerCase().replaceAll("\\s", "-"); - - if(line.contains("Related Nodes")){ - return String.format("<h6 id=\"%s\">%s</h6>%s<ul>", headerId, line, LINE_SEPARATOR); - } else { - return String.format("<h6 id=\"%s\">%s</h6>", headerId, line); - } - } else if(line.startsWith("-")){ - line = line.replaceFirst("-", ""); - line = line.trim(); - return String.format("<li>%s</li>", line); + String headerId = line.toLowerCase().replaceAll("\\s", "-"); + + if (line.contains("Related Nodes")) { + return String.format("<h6 id=\"%s\">%s</h6>%s<ul>", headerId, line, + LINE_SEPARATOR); } else { - return String.format("<p>%s</p>", line); + return String.format("<h6 id=\"%s\">%s</h6>", headerId, line); } - }) - .collect(Collectors.joining(LINE_SEPARATOR)); + } else if (line.startsWith("-")) { + line = line.replaceFirst("-", ""); + line = line.trim(); + return String.format("<li>%s</li>", line); + } else { + return String.format("<p>%s</p>", line); + } + }).collect(Collectors.joining(LINE_SEPARATOR)); - if(description.contains("<ul>")){ + if (description.contains("<ul>")) { description = description + "</ul>"; } @@ -489,4 +492,3 @@ public class GenerateSwagger { } } - |