Skip to content

[core] cleanup: remove OpenAPI parameter from CodegenConfig methods #1953

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Jan 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6155995
Add OpenAPI parameter to DefaultCodegen#toDefaultValue(..)
jmini Jan 21, 2019
458ca60
Remove CodegenConfig#fromOperation()
jmini Jan 21, 2019
3afe504
Remove allDefinitions parameter from fromModel(..)
jmini Jan 21, 2019
29ff0ee
Remove definitions parameter from CodegenConfig#fromOperation(..)
jmini Jan 21, 2019
f3ec049
remove schemas parameter from DefaultCodegen#fromRequestBody(..)
jmini Jan 21, 2019
2e3d04c
remove schemas parameter from DefaultCodegen#fromCallback(..)
jmini Jan 21, 2019
a3bf60c
Remove openAPI parameter from CodegenConfig#fromModel(..)
jmini Jan 21, 2019
404ab40
Remove openAPI parameter from CodegenConfig#fromOperation(..)
jmini Jan 21, 2019
762e642
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 21, 2019
2560619
Remove openAPI parameter from DefaultCodegen#fromProperty(..)
jmini Jan 21, 2019
f681ee7
Remove openAPI parameter from DefaultCodegen#fromParameter(..)
jmini Jan 21, 2019
f10b00d
Remove OpenAPI parameter from several methods
jmini Jan 21, 2019
415a001
Use ModelUtils.getReferencedParameter(..)
jmini Jan 21, 2019
0430332
Remove unused variable
jmini Jan 22, 2019
f25b84b
Remove openAPI parameter from DefaultCodegen#fromResponse(..)
jmini Jan 22, 2019
61a2010
Remove openAPI parameter from DefaultCodegen#addHeaders(..)
jmini Jan 22, 2019
f13239c
Remove from addConsumesInfo(..)/addProducesInfo(..)
jmini Jan 22, 2019
09afc8d
Improve test: add property to prevent Pet from being a free-form object
jmini Jan 22, 2019
b2a0ddf
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 22, 2019
10ba686
remove globalSchemas Map<String, Schema>
jmini Jan 22, 2019
2f1e853
remove deprecated method: postProcessOperations()
jmini Jan 22, 2019
a8c153e
Remove 'Map<String, Schema> allSchemas' from addProperties(..)
jmini Jan 23, 2019
52fbb4d
Remove 'Map<String, Schema> allDefinitions' from createDiscriminator(..)
jmini Jan 23, 2019
96d134a
Remove 'Map<String, Schema> allSchemas' from unaliasPropertySchema(..)
jmini Jan 23, 2019
b2efce0
Rename globalOpenAPI to openAPI
jmini Jan 23, 2019
0748b5c
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 23, 2019
9971742
Update documentation
jmini Jan 23, 2019
586dec7
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 24, 2019
65124ce
Run “Optimize import” in IntelliJ IDEA
jmini Jan 24, 2019
601c442
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 25, 2019
c7c4230
Merge remote-tracking branch 'origin/master' into add_openapi_parameter
jmini Jan 28, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions docs/migration-guide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,24 @@ The option is replaced with `-g` (`--generator-name`).
* `-g` allows the same values as `-l`
* See `list` command for the list of generator name

==== Access OpenAPI instance as member and not as parameter

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:

* `CodegenConfig#fromOperation(String, String, Operation, Map<String, Schema>, OpenAPI)`
* `CodegenConfig#fromModel(String, Schema, Map<String, Schema>)`
* `DefaultCodegen#fromResponse(OpenAPI, String, ApiResponse)`
* `DefaultCodegen#DefaultCodegen.fromRequestBody(RequestBody, Map<String, Schema>, Set<String>, String)`
* `DefaultCodegen#createDiscriminator(String, Schema, Map<String, Schema>)`
* ...

The parameters (`openAPI`, `allDefinitions`, `allSchemas` ...) are now removed from the methods.

To access the current OpenAPI instance, if you are extending `DefaultCodegen` you can use the protected `openAPI` member.

If you are creating your own generator by implementing `CodegenConfig`, then the setter `CodegenConfig.setOpenAPI(OpenAPI)` will be called.
You can keep a reference on the `OpenAPI` instance.

=== From 3.1.x to 3.2.0

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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,13 @@

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.util.Iterator;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ConfigParser {

private static final Logger LOGGER = LoggerFactory.getLogger(ConfigParser.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,15 @@

package org.openapitools.codegen;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.regex.Pattern;

public abstract class AbstractGenerator {
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractGenerator.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
package org.openapitools.codegen;

import com.fasterxml.jackson.annotation.JsonIgnore;

import io.swagger.v3.parser.util.SchemaTypeUtil;

import java.util.LinkedHashMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.core.models.AuthorizationValue;
import java.util.List;
import org.openapitools.codegen.auth.AuthParser;

import java.util.List;

public class ClientOptInput {
private CodegenConfig config;
private ClientOpts opts;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

package org.openapitools.codegen;

import org.openapitools.codegen.auth.AuthMethod;

import java.util.HashMap;
import java.util.Map;

import org.openapitools.codegen.auth.AuthMethod;

public class ClientOpts {
protected String uri;
protected String target;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
package org.openapitools.codegen;

import com.samskivert.mustache.Mustache.Compiler;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.Operation;
import io.swagger.v3.oas.models.media.Schema;
Expand All @@ -27,7 +26,6 @@
import io.swagger.v3.oas.models.servers.ServerVariable;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -111,11 +109,9 @@ public interface CodegenConfig {

void setOutputDir(String dir);

CodegenModel fromModel(String name, Schema schema, Map<String, Schema> allDefinitions);

CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Schema> definitions, OpenAPI openAPI);
CodegenModel fromModel(String name, Schema schema);

CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, Map<String, Schema> definitions);
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation);

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

Expand Down Expand Up @@ -179,14 +175,6 @@ public interface CodegenConfig {

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

/**
* @deprecated use {@link #postProcessOperationsWithModels(Map, List)} instead. This method will be removed
* @param objs the objects map that will be passed to the templating engine
* @return the the objects map instance.
*/
@Deprecated
Map<String, Object> postProcessOperations(Map<String, Object> objs);

Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels);

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

void setEnablePostProcessFile(boolean isEnablePostProcessFile);

// set OpenAPI and schemas
void setGlobalOpenAPI(OpenAPI openAPI);

void setGlobalSchemas(OpenAPI openAPI);
/**
* Set the OpenAPI instance. This method needs to be called right after the instantiation of the Codegen class.
* @param openAPI specification being generated
*/
void setOpenAPI(OpenAPI openAPI);

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@

package org.openapitools.codegen;

import static java.util.ServiceLoader.load;

import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;

import static java.util.ServiceLoader.load;

public class CodegenConfigLoader {
/**
* Tries to load config class with SPI first, then with class name directly from classpath
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

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

import java.util.*;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

public class CodegenDiscriminator {
private String propertyName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@

package org.openapitools.codegen;

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

import java.util.*;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.apache.commons.lang3.builder.ToStringBuilder;

@JsonIgnoreProperties({"parentModel", "interfaceModels"})
public class CodegenModel {
public String parent, parentSchema;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.tags.Tag;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.*;

public class CodegenOperation {
public final List<CodegenProperty> responseHeaders = new ArrayList<CodegenProperty>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package org.openapitools.codegen;

import io.swagger.v3.oas.models.security.Scopes;

import java.util.HashMap;
import java.util.List;
import java.util.Locale;
Expand Down
Loading