From 7d82b05d4cd2a3a491db2b01ff365f7c37554923 Mon Sep 17 00:00:00 2001 From: zmoore-usgs Date: Fri, 14 Jul 2017 12:54:09 -0500 Subject: [PATCH 1/3] Moving instantiationTypes, typeMappings, languageSpecificPrimitives, additionalProperties, and reservedWordsMappings out of configOptions and converting it into a list, rather than being a comma-separated string. --- .../swagger/codegen/plugin/CodeGenMojo.java | 91 +++++++++++++++++-- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index 5d415dbf0f7..62e2d47d0ae 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -178,9 +178,42 @@ public class CodeGenMojo extends AbstractMojo { @Parameter(name = "configOptions") private Map configOptions; + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "instantiationTypes") + private List instantiationTypes; + + /** + * A map of classes and the import that should be used for that class + */ @Parameter(name = "importMappings") private List importMappings; + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "typeMappings") + private List typeMappings; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "languageSpecificPrimitives") + private List languageSpecificPrimitives; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "additionalProperties") + private List additionalProperties; + + /** + * A map of classes and the import that should be used for that class + */ + @Parameter(name = "reservedWordsMappings") + private List reservedWordsMappings; + /** * Generate the apis */ @@ -390,37 +423,51 @@ public class CodeGenMojo extends AbstractMojo { System.setProperty("withXml", withXml.toString()); if (configOptions != null) { - - if (configOptions.containsKey("instantiation-types")) { + // Retained for backwards-compataibility with configOptions -> instantiation-types + if (instantiationTypes == null && configOptions.containsKey("instantiation-types")) { applyInstantiationTypesKvp(configOptions.get("instantiation-types").toString(), configurator); } + // Retained for backwards-compataibility with configOptions -> import-mappings if (importMappings == null && configOptions.containsKey("import-mappings")) { applyImportMappingsKvp(configOptions.get("import-mappings").toString(), configurator); } - if (configOptions.containsKey("type-mappings")) { + // Retained for backwards-compataibility with configOptions -> type-mappings + if (typeMappings == null && configOptions.containsKey("type-mappings")) { applyTypeMappingsKvp(configOptions.get("type-mappings").toString(), configurator); } - if (configOptions.containsKey("language-specific-primitives")) { + // Retained for backwards-compataibility with configOptions -> language-specific-primitives + if (languageSpecificPrimitives == null && configOptions.containsKey("language-specific-primitives")) { applyLanguageSpecificPrimitivesCsv(configOptions .get("language-specific-primitives").toString(), configurator); } - if (configOptions.containsKey("additional-properties")) { + // Retained for backwards-compataibility with configOptions -> additional-properties + if (additionalProperties == null && configOptions.containsKey("additional-properties")) { applyAdditionalPropertiesKvp(configOptions.get("additional-properties").toString(), configurator); } - if (configOptions.containsKey("reserved-words-mappings")) { + // Retained for backwards-compataibility with configOptions -> reserved-words-mappings + if (reservedWordsMappings == null && configOptions.containsKey("reserved-words-mappings")) { applyReservedWordsMappingsKvp(configOptions.get("reserved-words-mappings") .toString(), configurator); } } + //Apply Instantiation Types + if (instantiationTypes != null && !configOptions.containsKey("instantiation-types")) { + String instantiationTypesAsString = instantiationTypes.toString(); + applyInstantiationTypesKvp( + instantiationTypesAsString.substring(0, instantiationTypesAsString.length() - 1), + configurator); + } + + //Apply Import Mappings if (importMappings != null && !configOptions.containsKey("import-mappings")) { String importMappingsAsString = importMappings.toString(); applyImportMappingsKvp( @@ -428,6 +475,38 @@ public class CodeGenMojo extends AbstractMojo { configurator); } + //Apply Type Mappings + if (typeMappings != null && !configOptions.containsKey("type-mappings")) { + String typeMappingsAsString = typeMappings.toString(); + applyTypeMappingsKvp( + typeMappingsAsString.substring(0, typeMappingsAsString.length() - 1), + configurator); + } + + //Apply Language Specific Primitives + if (languageSpecificPrimitives != null && !configOptions.containsKey("language-specific-primitives")) { + String languageSpecificPrimitivesAsString = languageSpecificPrimitives.toString(); + applyLanguageSpecificPrimitivesCsv( + languageSpecificPrimitivesAsString.substring(0,languageSpecificPrimitivesAsString.length() - 1), + configurator); + } + + //Apply Additional Properties + if (additionalProperties != null && !configOptions.containsKey("additional-properties")) { + String additionalPropertiesAsString = additionalProperties.toString(); + applyAdditionalPropertiesKvp( + additionalPropertiesAsString.substring(0, additionalPropertiesAsString.length() - 1), + configurator); + } + + //Apply Reserved Words Mappings + if (reservedWordsMappings != null && !configOptions.containsKey("reserved-words-mappings")) { + String reservedWordsMappingsAsString = reservedWordsMappings.toString(); + applyReservedWordsMappingsKvp( + reservedWordsMappingsAsString.substring(0, reservedWordsMappingsAsString.length() - 1), + configurator); + } + if (environmentVariables != null) { for (String key : environmentVariables.keySet()) { From 4e40d370a6cabbe3c2275c2f33bbeaf2faebb94a Mon Sep 17 00:00:00 2001 From: zmoore-usgs Date: Fri, 14 Jul 2017 14:10:48 -0500 Subject: [PATCH 2/3] Switched methods to use the list application functions rather than the string application functions. --- .../swagger/codegen/plugin/CodeGenMojo.java | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index 62e2d47d0ae..9c8975c7b8d 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -20,6 +20,12 @@ import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyInstantiat import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyLanguageSpecificPrimitivesCsv; import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyTypeMappingsKvp; import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyReservedWordsMappingsKvp; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyAdditionalPropertiesKvpList; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyImportMappingsKvpList; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyInstantiationTypesKvpList; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyLanguageSpecificPrimitivesCsvList; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyTypeMappingsKvpList; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyReservedWordsMappingsKvpList; import static org.apache.commons.lang3.StringUtils.isNotEmpty; import java.io.File; @@ -461,50 +467,32 @@ public class CodeGenMojo extends AbstractMojo { //Apply Instantiation Types if (instantiationTypes != null && !configOptions.containsKey("instantiation-types")) { - String instantiationTypesAsString = instantiationTypes.toString(); - applyInstantiationTypesKvp( - instantiationTypesAsString.substring(0, instantiationTypesAsString.length() - 1), - configurator); + applyInstantiationTypesKvpList(instantiationTypes, configurator); } //Apply Import Mappings if (importMappings != null && !configOptions.containsKey("import-mappings")) { - String importMappingsAsString = importMappings.toString(); - applyImportMappingsKvp( - importMappingsAsString.substring(0, importMappingsAsString.length() - 1), - configurator); + applyImportMappingsKvpList(importMappings, configurator); } //Apply Type Mappings if (typeMappings != null && !configOptions.containsKey("type-mappings")) { - String typeMappingsAsString = typeMappings.toString(); - applyTypeMappingsKvp( - typeMappingsAsString.substring(0, typeMappingsAsString.length() - 1), - configurator); + applyTypeMappingsKvpList(typeMappings, configurator); } //Apply Language Specific Primitives if (languageSpecificPrimitives != null && !configOptions.containsKey("language-specific-primitives")) { - String languageSpecificPrimitivesAsString = languageSpecificPrimitives.toString(); - applyLanguageSpecificPrimitivesCsv( - languageSpecificPrimitivesAsString.substring(0,languageSpecificPrimitivesAsString.length() - 1), - configurator); + applyLanguageSpecificPrimitivesCsvList(languageSpecificPrimitives, configurator); } //Apply Additional Properties if (additionalProperties != null && !configOptions.containsKey("additional-properties")) { - String additionalPropertiesAsString = additionalProperties.toString(); - applyAdditionalPropertiesKvp( - additionalPropertiesAsString.substring(0, additionalPropertiesAsString.length() - 1), - configurator); + applyAdditionalPropertiesKvpList(additionalProperties, configurator); } //Apply Reserved Words Mappings if (reservedWordsMappings != null && !configOptions.containsKey("reserved-words-mappings")) { - String reservedWordsMappingsAsString = reservedWordsMappings.toString(); - applyReservedWordsMappingsKvp( - reservedWordsMappingsAsString.substring(0, reservedWordsMappingsAsString.length() - 1), - configurator); + applyReservedWordsMappingsKvpList(reservedWordsMappings, configurator); } if (environmentVariables != null) { From 7e723e4ae50e03890b9cd468555c71a335eb1a4b Mon Sep 17 00:00:00 2001 From: zmoore-usgs Date: Fri, 14 Jul 2017 14:17:12 -0500 Subject: [PATCH 3/3] Updated comments --- .../java/io/swagger/codegen/plugin/CodeGenMojo.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index 9c8975c7b8d..a73ed6aa0c0 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -185,7 +185,7 @@ public class CodeGenMojo extends AbstractMojo { private Map configOptions; /** - * A map of classes and the import that should be used for that class + * A map of types and the types they should be instantiated as */ @Parameter(name = "instantiationTypes") private List instantiationTypes; @@ -197,25 +197,25 @@ public class CodeGenMojo extends AbstractMojo { private List importMappings; /** - * A map of classes and the import that should be used for that class + * A map of swagger spec types and the generated code types to use for them */ @Parameter(name = "typeMappings") private List typeMappings; /** - * A map of classes and the import that should be used for that class + * A map of additional language specific primitive types */ @Parameter(name = "languageSpecificPrimitives") private List languageSpecificPrimitives; /** - * A map of classes and the import that should be used for that class + * A map of additional properties that can be referenced by the mustache templates */ @Parameter(name = "additionalProperties") private List additionalProperties; /** - * A map of classes and the import that should be used for that class + * A map of reserved names and how they should be escaped */ @Parameter(name = "reservedWordsMappings") private List reservedWordsMappings;