Skip to content

Commit 041c2b4

Browse files
jminiwing328
authored andcommitted
[core] cleanup: remove OpenAPI parameter from CodegenConfig methods (OpenAPITools#1953)
* Add OpenAPI parameter to DefaultCodegen#toDefaultValue(..) * Remove CodegenConfig#fromOperation() * Remove allDefinitions parameter from fromModel(..) * Remove definitions parameter from CodegenConfig#fromOperation(..) * remove schemas parameter from DefaultCodegen#fromRequestBody(..) * remove schemas parameter from DefaultCodegen#fromCallback(..) * Remove openAPI parameter from CodegenConfig#fromModel(..) * Remove openAPI parameter from CodegenConfig#fromOperation(..) * Remove openAPI parameter from DefaultCodegen#fromProperty(..) * Remove openAPI parameter from DefaultCodegen#fromParameter(..) * Remove OpenAPI parameter from several methods * Use ModelUtils.getReferencedParameter(..) * Remove unused variable * Remove openAPI parameter from DefaultCodegen#fromResponse(..) * Remove openAPI parameter from DefaultCodegen#addHeaders(..) * Remove from addConsumesInfo(..)/addProducesInfo(..) * Improve test: add property to prevent Pet from being a free-form object * remove globalSchemas Map<String, Schema> * remove deprecated method: postProcessOperations() * Remove 'Map<String, Schema> allSchemas' from addProperties(..) * Remove 'Map<String, Schema> allDefinitions' from createDiscriminator(..) * Remove 'Map<String, Schema> allSchemas' from unaliasPropertySchema(..) * Rename globalOpenAPI to openAPI * Update documentation * Run “Optimize import” in IntelliJ IDEA
1 parent 9d6cbff commit 041c2b4

File tree

243 files changed

+1369
-2122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

243 files changed

+1369
-2122
lines changed

docs/migration-guide.adoc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,24 @@ The option is replaced with `-g` (`--generator-name`).
2222
* `-g` allows the same values as `-l`
2323
* See `list` command for the list of generator name
2424

25+
==== Access OpenAPI instance as member and not as parameter
26+
27+
If you are creating or extending a generator (programmatically), you might have use one of the following parameters: `OpenAPI openAPI` or `Map<String, Schema> allDefinitions` or `Map<String, Schema> allSchemas`. Example methods:
28+
29+
* `CodegenConfig#fromOperation(String, String, Operation, Map<String, Schema>, OpenAPI)`
30+
* `CodegenConfig#fromModel(String, Schema, Map<String, Schema>)`
31+
* `DefaultCodegen#fromResponse(OpenAPI, String, ApiResponse)`
32+
* `DefaultCodegen#DefaultCodegen.fromRequestBody(RequestBody, Map<String, Schema>, Set<String>, String)`
33+
* `DefaultCodegen#createDiscriminator(String, Schema, Map<String, Schema>)`
34+
* ...
35+
36+
The parameters (`openAPI`, `allDefinitions`, `allSchemas` ...) are now removed from the methods.
37+
38+
To access the current OpenAPI instance, if you are extending `DefaultCodegen` you can use the protected `openAPI` member.
39+
40+
If you are creating your own generator by implementing `CodegenConfig`, then the setter `CodegenConfig.setOpenAPI(OpenAPI)` will be called.
41+
You can keep a reference on the `OpenAPI` instance.
42+
2543
=== From 3.1.x to 3.2.0
2644

2745
Version `3.2.0` is a minor version of OpenAPI-Generator, in comparison to `3.1.x` it contains some breaking changes, but with the possibility to fallback to the old behavior.

modules/openapi-generator/src/main/java/config/ConfigParser.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,13 @@
1919

2020
import com.fasterxml.jackson.databind.JsonNode;
2121
import com.fasterxml.jackson.databind.ObjectMapper;
22+
import org.slf4j.Logger;
23+
import org.slf4j.LoggerFactory;
2224

2325
import java.io.File;
2426
import java.util.Iterator;
2527
import java.util.Map;
2628

27-
import org.slf4j.Logger;
28-
import org.slf4j.LoggerFactory;
29-
3029
public class ConfigParser {
3130

3231
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigParser.class);

modules/openapi-generator/src/main/java/org/openapitools/codegen/AbstractGenerator.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,15 @@
1717

1818
package org.openapitools.codegen;
1919

20-
import java.io.BufferedWriter;
21-
import java.io.File;
22-
import java.io.FileInputStream;
23-
import java.io.FileOutputStream;
24-
import java.io.IOException;
25-
import java.io.InputStream;
26-
import java.io.InputStreamReader;
27-
import java.io.OutputStreamWriter;
28-
import java.io.Reader;
29-
import java.io.Writer;
30-
import java.nio.file.Paths;
31-
import java.util.Scanner;
32-
import java.util.regex.Pattern;
33-
3420
import org.apache.commons.lang3.StringUtils;
3521
import org.slf4j.Logger;
3622
import org.slf4j.LoggerFactory;
3723

24+
import java.io.*;
25+
import java.nio.file.Paths;
26+
import java.util.Scanner;
27+
import java.util.regex.Pattern;
28+
3829
public abstract class AbstractGenerator {
3930
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractGenerator.class);
4031

modules/openapi-generator/src/main/java/org/openapitools/codegen/CliOption.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.openapitools.codegen;
1919

2020
import com.fasterxml.jackson.annotation.JsonIgnore;
21-
2221
import io.swagger.v3.parser.util.SchemaTypeUtil;
2322

2423
import java.util.LinkedHashMap;

modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOptInput.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919

2020
import io.swagger.v3.oas.models.OpenAPI;
2121
import io.swagger.v3.parser.core.models.AuthorizationValue;
22-
import java.util.List;
2322
import org.openapitools.codegen.auth.AuthParser;
2423

24+
import java.util.List;
25+
2526
public class ClientOptInput {
2627
private CodegenConfig config;
2728
private ClientOpts opts;

modules/openapi-generator/src/main/java/org/openapitools/codegen/ClientOpts.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717

1818
package org.openapitools.codegen;
1919

20+
import org.openapitools.codegen.auth.AuthMethod;
21+
2022
import java.util.HashMap;
2123
import java.util.Map;
2224

23-
import org.openapitools.codegen.auth.AuthMethod;
24-
2525
public class ClientOpts {
2626
protected String uri;
2727
protected String target;

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package org.openapitools.codegen;
1919

2020
import com.samskivert.mustache.Mustache.Compiler;
21-
2221
import io.swagger.v3.oas.models.OpenAPI;
2322
import io.swagger.v3.oas.models.Operation;
2423
import io.swagger.v3.oas.models.media.Schema;
@@ -27,7 +26,6 @@
2726
import io.swagger.v3.oas.models.servers.ServerVariable;
2827

2928
import java.io.File;
30-
import java.util.HashMap;
3129
import java.util.List;
3230
import java.util.Map;
3331
import java.util.Set;
@@ -111,11 +109,9 @@ public interface CodegenConfig {
111109

112110
void setOutputDir(String dir);
113111

114-
CodegenModel fromModel(String name, Schema schema, Map<String, Schema> allDefinitions);
115-
116-
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Schema> definitions, OpenAPI openAPI);
112+
CodegenModel fromModel(String name, Schema schema);
117113

118-
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Schema> definitions);
114+
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation);
119115

120116
List<CodegenSecurity> fromSecurity(Map<String, SecurityScheme> schemas);
121117

@@ -179,14 +175,6 @@ public interface CodegenConfig {
179175

180176
Map<String, Object> postProcessModels(Map<String, Object> objs);
181177

182-
/**
183-
* @deprecated use {@link #postProcessOperationsWithModels(Map, List)} instead. This method will be removed
184-
* @param objs the objects map that will be passed to the templating engine
185-
* @return the the objects map instance.
186-
*/
187-
@Deprecated
188-
Map<String, Object> postProcessOperations(Map<String, Object> objs);
189-
190178
Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels);
191179

192180
Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs);
@@ -266,9 +254,10 @@ public interface CodegenConfig {
266254

267255
void setEnablePostProcessFile(boolean isEnablePostProcessFile);
268256

269-
// set OpenAPI and schemas
270-
void setGlobalOpenAPI(OpenAPI openAPI);
271-
272-
void setGlobalSchemas(OpenAPI openAPI);
257+
/**
258+
* Set the OpenAPI instance. This method needs to be called right after the instantiation of the Codegen class.
259+
* @param openAPI specification being generated
260+
*/
261+
void setOpenAPI(OpenAPI openAPI);
273262

274263
}

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfigLoader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717

1818
package org.openapitools.codegen;
1919

20-
import static java.util.ServiceLoader.load;
21-
2220
import java.util.ArrayList;
2321
import java.util.List;
2422
import java.util.ServiceLoader;
2523

24+
import static java.util.ServiceLoader.load;
25+
2626
public class CodegenConfigLoader {
2727
/**
2828
* Tries to load config class with SPI first, then with class name directly from classpath

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
import org.apache.commons.lang3.builder.ToStringBuilder;
44

5-
import java.util.*;
5+
import java.util.LinkedHashSet;
6+
import java.util.Map;
7+
import java.util.Objects;
8+
import java.util.Set;
69

710
public class CodegenDiscriminator {
811
private String propertyName;

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717

1818
package org.openapitools.codegen;
1919

20+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
2021
import io.swagger.v3.oas.models.ExternalDocumentation;
22+
import org.apache.commons.lang3.builder.ToStringBuilder;
2123

2224
import java.util.*;
2325

24-
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
25-
import org.apache.commons.lang3.builder.ToStringBuilder;
26-
2726
@JsonIgnoreProperties({"parentModel", "interfaceModels"})
2827
public class CodegenModel {
2928
public String parent, parentSchema;

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,7 @@
2020
import io.swagger.v3.oas.models.ExternalDocumentation;
2121
import io.swagger.v3.oas.models.tags.Tag;
2222

23-
import java.util.ArrayList;
24-
import java.util.Arrays;
25-
import java.util.HashMap;
26-
import java.util.HashSet;
27-
import java.util.List;
28-
import java.util.Locale;
29-
import java.util.Map;
30-
import java.util.Set;
23+
import java.util.*;
3124

3225
public class CodegenOperation {
3326
public final List<CodegenProperty> responseHeaders = new ArrayList<CodegenProperty>();

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenSecurity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
package org.openapitools.codegen;
1919

20-
import io.swagger.v3.oas.models.security.Scopes;
21-
2220
import java.util.HashMap;
2321
import java.util.List;
2422
import java.util.Locale;

0 commit comments

Comments
 (0)