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;
static Map<String,String> javaTypeDefinitions = createJavaTypeDefinitions();
private static Map<String, String> createJavaTypeDefinitions()
{
- StringBuffer aaiInternal = new StringBuffer();
+ StringBuilder aaiInternal = new StringBuilder();
Map<String,String> javaTypeDefinitions = new HashMap<String, String>();
aaiInternal.append(" aai-internal:\n");
aaiInternal.append(" properties:\n");
public static final int VALUE_INDEXED_PROPS = 2;
public static final int VALUE_CONTAINER = 3;
- private static final String generateTypeXSD = "xsd";
- private static final String generateTypeYAML = "yaml";
+ private static final String GENERATE_TYPE_XSD = "xsd";
+ private static final String GENERATE_TYPE_YAML = "yaml";
- private final static String nodeDir = System.getProperty("nodes.configuration.location");
- private final static String edgeDir = System.getProperty("edges.configuration.location");
- private static final String baseRoot = "aai-schema/";
- private static final String baseAutoGenRoot = "aai-schema/";
+ 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 root = baseRoot + "src/main/resources";
- private static final String autoGenRoot = baseAutoGenRoot + "src/main/resources";
+ 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 normalStartDir = "aai-schema-gen";
- private static final String xsd_dir = root + "/" + RELEASE +"/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 yaml_dir = (((System.getProperty("user.dir") != null) && (!System.getProperty("user.dir").contains(normalStartDir))) ? autoGenRoot : root) + "/" + RELEASE + "/aai_swagger_yaml";
+ 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";
/* These three strings are for yaml auto-generation from aai-common class*/
- private static int swaggerSupportStartsVersion = 1; // minimum version to support swagger documentation
+ private static final int SWAGGER_SUPPORT_STARTS_VERSION = 1; // minimum version to support swagger documentation
private static boolean validVersion(String versionToGen) {
}
SchemaVersions schemaVersions = SpringContextAware.getBean(SchemaVersions.class);
+ if (schemaVersions == null) {
+ return false;
+ }
for (SchemaVersion v : schemaVersions.getVersions()) {
- if (v.equals(versionToGen)) {
+ if (v.toString().equals(versionToGen)) {
return true;
}
}
return false;
}
- private static boolean versionSupportsSwagger( String version) {
- if (new Integer(version.substring(1)).intValue() >= swaggerSupportStartsVersion ) {
- return true;
- }
- return false;
- }
+ 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 getYamlDir() {
- return yaml_dir;
+ return YAML_DIR;
}
public static String getResponsesUrl() {
return responsesUrl;
}
public static void main(String[] args) throws IOException {
- String versionToGen = System.getProperty("gen_version").toLowerCase();
- String fileTypeToGen = System.getProperty("gen_type").toLowerCase();
-
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
+ String versionToGen = System.getProperty("gen_version");
+ if (versionToGen == null) {
+ System.err.println("Version is required, ie v<n> or ALL.");
+ System.exit(1);
+ } else {
+ versionToGen = versionToGen.toLowerCase();
+ }
+
+ String fileTypeToGen = System.getProperty("gen_type");
+ if (fileTypeToGen == null) {
+ fileTypeToGen = GENERATE_TYPE_XSD;
+ } else {
+ fileTypeToGen = fileTypeToGen.toLowerCase();
+ }
+
+ AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
"org.onap.aai.setup",
"org.onap.aai.schemagen"
);
SchemaVersions schemaVersions = ctx.getBean(SchemaVersions.class);
- if ( fileTypeToGen == null ) {
- fileTypeToGen = generateTypeXSD;
- }
-
- if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) {
+ if ( !fileTypeToGen.equals(GENERATE_TYPE_XSD) && !fileTypeToGen.equals(GENERATE_TYPE_YAML)) {
System.err.println("Invalid gen_type passed. " + fileTypeToGen);
System.exit(1);
}
responsesUrl = responsesLabel;
List<SchemaVersion> versionsToGen = new ArrayList<>();
- if ( versionToGen == null ) {
- System.err.println("Version is required, ie v<n> or ALL.");
- System.exit(1);
- }
- else if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) {
+ if (!"ALL".equalsIgnoreCase(versionToGen) && !versionToGen.matches("v\\d+") && !validVersion(versionToGen)) {
System.err.println("Invalid version passed. " + versionToGen);
System.exit(1);
}
}
//process file type System property
- fileTypeToGen = (fileTypeToGen == null ? generateTypeXSD : fileTypeToGen.toLowerCase());
- if ( !fileTypeToGen.equals( generateTypeXSD ) && !fileTypeToGen.equals( generateTypeYAML )) {
- System.err.println("Invalid gen_type passed. " + fileTypeToGen);
- System.exit(1);
- } else if ( fileTypeToGen.equals(generateTypeYAML) ) {
+ 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" );
* TODO: Oxm Path is config driveb
*/
String oxmPath;
- if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(normalStartDir)) {
- oxmPath = baseAutoGenRoot + nodeDir;
+ if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(
+ NORMAL_START_DIR)) {
+ oxmPath = BASE_AUTO_GEN_ROOT + NODE_DIR;
}
else {
- oxmPath = baseRoot + nodeDir;
+ oxmPath = BASE_ROOT + NODE_DIR;
}
String outfileName = null;
for (SchemaVersion v : versionsToGen) {
apiVersion = v.toString();
- logger.debug("YAMLdir = "+yaml_dir);
+ 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 = edgeDir + "DbEdgeRules_" + apiVersion + ".json";
+ 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(normalStartDir)) {
- fileName = baseAutoGenRoot + fileName;
+ if(System.getProperty("user.dir") != null && !System.getProperty("user.dir").contains(
+ NORMAL_START_DIR)) {
+ fileName = BASE_AUTO_GEN_ROOT + fileName;
}
else {
- fileName = baseRoot + fileName;
+ fileName = BASE_ROOT + fileName;
}
edgeRuleFile = new File( fileName);
// Document doc = ni.getSchema(translateVersion(v));
- if ( fileTypeToGen.equals(generateTypeXSD) ) {
- outfileName = xsd_dir + "/aai_schema_" + apiVersion + "." + generateTypeXSD;
+ 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);
} catch(Exception e) {
logger.error( "Exception creating output file " + outfileName);
logger.error( e.getMessage());
- e.printStackTrace();
System.exit(-1);
}
} else if ( versionSupportsSwagger(apiVersion )) {
- outfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + generateTypeYAML;
- nodesfileName = yaml_dir + "/aai_swagger_" + apiVersion + "." + "nodes"+"."+generateTypeYAML;
+ 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);
nodesSwagger.setCombinedJavaTypes(combinedJavaTypes);
nodesContent = nodesSwagger.process();
} catch(Exception e) {
- logger.error( "Exception creating output file " + outfileName);
- e.printStackTrace();
+ logger.error("Exception creating output file " + outfileName, e);
}
} else {
continue;
}
outfile = new File(outfileName);
File parentDir = outfile.getParentFile();
- if(! parentDir.exists())
- parentDir.mkdirs();
+ if(!parentDir.exists()) {
+ parentDir.mkdirs();
+ }
if(nodesfileName != null) {
BufferedWriter nodesBW = null;
nodesfile = new File(nodesfileName);
parentDir = nodesfile.getParentFile();
- if(! parentDir.exists())
- parentDir.mkdirs();
+ if(!parentDir.exists()){
+ parentDir.mkdirs();
+ }
try {
- nodesfile.createNewFile();
+ if(!nodesfile.createNewFile()) {
+ logger.error( "File {} already exist", nodesfileName);
+ }
} catch (IOException e) {
- logger.error( "Exception creating output file " + nodesfileName);
- e.printStackTrace();
+ logger.error( "Exception creating output file " + nodesfileName, e);
}
try {
- Charset charset = Charset.forName("UTF-8");
+ 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.printStackTrace();
+ logger.error( "Exception writing output file " + outfileName, e);
} finally {
if ( nodesBW != null ) {
nodesBW.close();
}
try {
- outfile.createNewFile();
+ if(!outfile.createNewFile()) {
+ logger.error( "File {} already exist", outfileName);
+ }
} catch (IOException e) {
- logger.error( "Exception creating output file " + outfileName);
- e.printStackTrace();
+ logger.error( "Exception creating output file " + outfileName, e);
}
BufferedWriter bw = null;
try {
- Charset charset = Charset.forName("UTF-8");
+ 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.printStackTrace();
+ logger.error( "Exception writing output file " + outfileName, e);
} finally {
if ( bw != null ) {
bw.close();