Skip to content

Commit

Permalink
Avoid using import mapping in model generation (OpenAPITools#11217)
Browse files Browse the repository at this point in the history
* remove import mapping logic in model generation, better handle of file, list

* add new files for file, list

* fix some tests

* update tests, doc

* skip file as reserved word in feign client

* add new files

* remove file from reserved word list in spring generator
  • Loading branch information
wing328 committed Jan 16, 2022
1 parent 3f4e7d8 commit 33bce99
Show file tree
Hide file tree
Showing 382 changed files with 7,655 additions and 1,348 deletions.
2 changes: 2 additions & 0 deletions docs/generators/groovy.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -145,6 +146,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-inflector.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -143,6 +144,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-micronaut-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -155,6 +156,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-msf4j.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -149,6 +150,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-pkmst.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -150,6 +151,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-play-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -153,6 +154,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-undertow-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -143,6 +144,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-vertx-web.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -143,6 +144,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java-vertx.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -146,6 +147,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -165,6 +166,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-cxf-cdi.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -156,6 +157,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-cxf-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -147,6 +148,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-cxf-extended.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -170,6 +171,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-cxf.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -165,6 +166,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-jersey.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -150,6 +151,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-resteasy-eap.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -150,6 +151,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-resteasy.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -149,6 +150,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/jaxrs-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -156,6 +157,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
2 changes: 2 additions & 0 deletions docs/generators/spring.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>else</li>
<li>enum</li>
<li>extends</li>
<li>file</li>
<li>final</li>
<li>finally</li>
<li>float</li>
Expand All @@ -167,6 +168,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
<li>instanceof</li>
<li>int</li>
<li>interface</li>
<li>list</li>
<li>localreturntype</li>
<li>localvaraccept</li>
<li>localvaraccepts</li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -437,19 +437,6 @@ void generateModels(List<File> files, List<Object> allModels, List<String> unuse
// process models only
for (String name : modelKeys) {
try {
//don't generate models that have an import mapping
if (config.importMapping().containsKey(name)) {
LOGGER.debug("Model {} not imported due to import mapping", name);

for (String templateName : config.modelTemplateFiles().keySet()) {
// HACK: Because this returns early, could lead to some invalid model reporting.
String filename = config.modelFilename(templateName, name);
Path path = java.nio.file.Paths.get(filename);
this.templateProcessor.skip(path,"Skipped prior to model processing due to import mapping conflict (either by user or by generator)." );
}
continue;
}

// don't generate models that are not used as object (e.g. form parameters)
if (unusedModels.contains(name)) {
if (Boolean.FALSE.equals(skipFormModel)) {
Expand Down Expand Up @@ -517,11 +504,6 @@ void generateModels(List<File> files, List<Object> allModels, List<String> unuse
Map<String, Object> models = (Map<String, Object>) allProcessedModels.get(modelName);
models.put("modelPackage", config.modelPackage());
try {
//don't generate models that have an import mapping
if (config.importMapping().containsKey(modelName)) {
continue;
}

// TODO revise below as we've already performed unaliasing so that the isAlias check may be removed
List<Object> modelList = (List<Object>) models.get("models");
if (modelList != null && !modelList.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ public AbstractJavaCodegen() {
setReservedWordsLowerCase(
Arrays.asList(
// special words
"object",
"object", "list", "file",
// used as internal variables, can collide with parameter names
"localVarPath", "localVarQueryParams", "localVarCollectionQueryParams",
"localVarHeaderParams", "localVarCookieParams", "localVarFormParams", "localVarPostBody",
Expand Down Expand Up @@ -753,12 +753,6 @@ public String toParamName(String name) {

@Override
public String toModelName(final String name) {
// We need to check if import-mapping has a different model for this class, so we use it
// instead of the auto-generated one.
if (importMapping.containsKey(name)) {
return importMapping.get(name);
}

final String sanitizedName = sanitizeName(name);

String nameWithPrefixSuffix = sanitizedName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,10 @@ public void processOpts() {
//Templates to decode response headers
supportingFiles.add(new SupportingFile("model/ApiResponse.mustache", modelsFolder, "ApiResponse.java"));
supportingFiles.add(new SupportingFile("ApiResponseDecoder.mustache", invokerFolder, "ApiResponseDecoder.java"));

// TODO remove "file" from reserved word list as feign client doesn't support using `baseName`
// as the parameter name yet
reservedWords.remove("file");
}

if (!(FEIGN.equals(getLibrary()) || RESTTEMPLATE.equals(getLibrary()) || RETROFIT_2.equals(getLibrary()) || GOOGLE_API_CLIENT.equals(getLibrary()) || REST_ASSURED.equals(getLibrary()) || WEBCLIENT.equals(getLibrary()) || MICROPROFILE.equals(getLibrary()))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,13 +242,16 @@ public String getHelp() {

@Override
public void processOpts() {

final List<Pair<String, String>> configOptions = additionalProperties.entrySet().stream()
.filter(e -> !Arrays.asList(API_FIRST, "hideGenerationTimestamp").contains(e.getKey()))
.filter(e -> cliOptions.stream().map(CliOption::getOpt).anyMatch(opt -> opt.equals(e.getKey())))
.map(e -> Pair.of(e.getKey(), e.getValue().toString())).collect(Collectors.toList());
additionalProperties.put("configOptions", configOptions);

// TODO remove "file" from reserved word list as feign client doesn't support using `baseName`
// as the parameter name yet
reservedWords.remove("file");

// Process java8 option before common java ones to change the default
// dateLibrary to java8.
LOGGER.info("----------------------------------");
Expand Down
Loading

0 comments on commit 33bce99

Please sign in to comment.