-[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`3.1.2`): [](https://travis-ci.org/OpenAPITools/openapi-generator)
+[Master](https://github.com/OpenAPITools/openapi-generator/tree/master) (`3.2.0`): [](https://travis-ci.org/OpenAPITools/openapi-generator)
[](https://circleci.com/gh/OpenAPITools/openapi-generator)
[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
[](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
-[`3.2.x`](https://github.com/OpenAPITools/openapi-generator/tree/3.2.x) branch: [](https://travis-ci.org/OpenAPITools/openapi-generator)
-[](https://circleci.com/gh/OpenAPITools/openapi-generator)
-[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
-[](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
-
[`4.0.x`](https://github.com/OpenAPITools/openapi-generator/tree/4.0.x) branch: [](https://travis-ci.org/OpenAPITools/openapi-generator)
[](https://circleci.com/gh/OpenAPITools/openapi-generator)
[](https://app.shippable.com/github/OpenAPITools/openapi-generator)
@@ -88,7 +83,7 @@ The OpenAPI Specification has undergone 3 revisions since initial creation in 20
OpenAPI Generator Version | Release Date | OpenAPI Spec compatibility | Notes
---------------------------- | ------------ | -------------------------- | -----
4.0.0 (upcoming major release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.0.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Major release with breaking changes (no fallback)
-3.2.0 (upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.2.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
+3.2.0 (current master, upcoming minor release) [SNAPSHOT](https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/3.2.0-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
[3.1.2](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.2) | 25.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.1.1](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.1) | 18.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Bugfix release
[3.1.0](https://github.com/OpenAPITools/openapi-generator/releases/tag/v3.1.0) | 06.07.2018 | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release with breaking changes (with fallbacks)
diff --git a/docs/migration-guide.adoc b/docs/migration-guide.adoc
index 08d220cc576..0ea6754fab0 100644
--- a/docs/migration-guide.adoc
+++ b/docs/migration-guide.adoc
@@ -11,6 +11,20 @@ Another approach to find breaking changes is to look at issue and pull requests
* link:https://github.com/OpenAPITools/openapi-generator/labels/Breaking%20change%20%28with%20fallback%29[Breaking change (with fallback)]
* link:https://github.com/OpenAPITools/openapi-generator/labels/Breaking%20change%20%28without%20fallback%29[Breaking change (without fallback)]
+=== 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.
+The default value of some options might change.
+Projects relying on generated code might need to be adapted.
+
+==== Model (all languages)
+
+In `CodegenModel` and in `CodegenOperation` we use now our own class `org.openapitools.codegen.CodegenDiscriminator` instead of `io.swagger.v3.oas.models.media.Discriminator`.
+
+For the templates, this is not an API change, because the same values are available.
+
+If you have your own `Codegen` class (to support your own generator for example) then you might get some compile error due to the change.
+
=== From 3.0.x to 3.1.0
Version `3.1.0` is the first minor version of OpenAPI-Generator, in comparison to `3.0.3` it contains some breaking changes, but with the possibility to fallback to the old behavior.
diff --git a/modules/openapi-generator-cli/pom.xml b/modules/openapi-generator-cli/pom.xml
index 7da4a849004..73ce644c803 100644
--- a/modules/openapi-generator-cli/pom.xml
+++ b/modules/openapi-generator-cli/pom.xml
@@ -3,7 +3,7 @@
org.openapitools
openapi-generator-project
- 3.1.2
+ 3.2.0-SNAPSHOT
../..
4.0.0
diff --git a/modules/openapi-generator-gradle-plugin/gradle.properties b/modules/openapi-generator-gradle-plugin/gradle.properties
index 58663f7d6af..ee8937432c3 100644
--- a/modules/openapi-generator-gradle-plugin/gradle.properties
+++ b/modules/openapi-generator-gradle-plugin/gradle.properties
@@ -1,4 +1,4 @@
-openApiGeneratorVersion=3.1.2
+openApiGeneratorVersion=3.2.0-SNAPSHOT
# BEGIN placeholders
# these are just placeholders to allow contributors to build directly
diff --git a/modules/openapi-generator-gradle-plugin/pom.xml b/modules/openapi-generator-gradle-plugin/pom.xml
index 84a9f9fc9f9..37fe1cda796 100644
--- a/modules/openapi-generator-gradle-plugin/pom.xml
+++ b/modules/openapi-generator-gradle-plugin/pom.xml
@@ -3,7 +3,7 @@
org.openapitools
openapi-generator-project
- 3.1.2
+ 3.2.0-SNAPSHOT
../..
4.0.0
diff --git a/modules/openapi-generator-maven-plugin/pom.xml b/modules/openapi-generator-maven-plugin/pom.xml
index c23de082912..3568cde8b36 100644
--- a/modules/openapi-generator-maven-plugin/pom.xml
+++ b/modules/openapi-generator-maven-plugin/pom.xml
@@ -4,7 +4,7 @@
org.openapitools
openapi-generator-project
- 3.1.2
+ 3.2.0-SNAPSHOT
../..
openapi-generator-maven-plugin
diff --git a/modules/openapi-generator-online/Dockerfile b/modules/openapi-generator-online/Dockerfile
index d44fde5a1c8..006f7da65c7 100644
--- a/modules/openapi-generator-online/Dockerfile
+++ b/modules/openapi-generator-online/Dockerfile
@@ -2,7 +2,7 @@ FROM openjdk:8-jre-alpine
WORKDIR /generator
-COPY target/openapi-generator-online-3.1.2.jar /generator/openapi-generator-online.jar
+COPY target/openapi-generator-online-3.2.0-SNAPSHOT.jar /generator/openapi-generator-online.jar
ENV GENERATOR_HOST=http://localhost
diff --git a/modules/openapi-generator-online/pom.xml b/modules/openapi-generator-online/pom.xml
index 53da40ab527..70a3a9ac05d 100644
--- a/modules/openapi-generator-online/pom.xml
+++ b/modules/openapi-generator-online/pom.xml
@@ -3,7 +3,7 @@
org.openapitools
openapi-generator-project
- 3.1.2
+ 3.2.0-SNAPSHOT
../..
openapi-generator-online
diff --git a/modules/openapi-generator/pom.xml b/modules/openapi-generator/pom.xml
index 8df2042a73f..80024d1935d 100644
--- a/modules/openapi-generator/pom.xml
+++ b/modules/openapi-generator/pom.xml
@@ -3,7 +3,7 @@
org.openapitools
openapi-generator-project
- 3.1.2
+ 3.2.0-SNAPSHOT
../..
4.0.0
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java
new file mode 100644
index 00000000000..79c2c40874b
--- /dev/null
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenDiscriminator.java
@@ -0,0 +1,88 @@
+package org.openapitools.codegen;
+
+import java.util.*;
+
+public class CodegenDiscriminator {
+ private String propertyName;
+ private Map
mapping;
+ private Set mappedModels = new LinkedHashSet<>();
+
+ public String getPropertyName() {
+ return propertyName;
+ }
+
+ public void setPropertyName(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ public Map getMapping() {
+ return mapping;
+ }
+
+ public void setMapping(Map mapping) {
+ this.mapping = mapping;
+ }
+
+ public Set getMappedModels() {
+ return mappedModels;
+ }
+
+ public void setMappedModels(Set mappedModels) {
+ this.mappedModels = mappedModels;
+ }
+
+ public static class MappedModel {
+ private String mappingName;
+ private String modelName;
+
+ public MappedModel(String mappingName, String modelName) {
+ this.mappingName = mappingName;
+ this.modelName = modelName;
+ }
+
+ public String getMappingName() {
+ return mappingName;
+ }
+
+ public void setMappingName(String mappingName) {
+ this.mappingName = mappingName;
+ }
+
+ public String getModelName() {
+ return modelName;
+ }
+
+ public void setModelName(String modelName) {
+ this.modelName = modelName;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ MappedModel that = (MappedModel) o;
+ return Objects.equals(mappingName, that.mappingName) &&
+ Objects.equals(modelName, that.modelName);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mappingName, modelName);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ CodegenDiscriminator that = (CodegenDiscriminator) o;
+ return Objects.equals(propertyName, that.propertyName) &&
+ Objects.equals(mapping, that.mapping) &&
+ Objects.equals(mappedModels, that.mappedModels);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(propertyName, mapping, mappedModels);
+ }
+}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
index 864028eacb7..279d796f05f 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java
@@ -18,15 +18,14 @@
package org.openapitools.codegen;
import io.swagger.v3.oas.models.ExternalDocumentation;
-import io.swagger.v3.oas.models.media.Discriminator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeSet;
-import java.util.Objects;
public class CodegenModel {
public String parent, parentSchema;
@@ -40,7 +39,7 @@ public class CodegenModel {
public String name, classname, title, description, classVarName, modelJson, dataType, xmlPrefix, xmlNamespace, xmlName;
public String classFilename; // store the class file name, mainly used for import
public String unescapedDescription;
- public Discriminator discriminator;
+ public CodegenDiscriminator discriminator;
public String defaultValue;
public String arrayModelType;
public boolean isAlias; // Is this effectively an alias of another simple type
@@ -349,7 +348,7 @@ public class CodegenModel {
this.unescapedDescription = unescapedDescription;
}
- public Discriminator getDiscriminator() {
+ public CodegenDiscriminator getDiscriminator() {
return discriminator;
}
@@ -357,7 +356,7 @@ public class CodegenModel {
return discriminator == null ? null : discriminator.getPropertyName();
}
- public void setDiscriminator(Discriminator discriminator) {
+ public void setDiscriminator(CodegenDiscriminator discriminator) {
this.discriminator = discriminator;
}
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
index 6f29146bde3..0e7e96d1b54 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
@@ -18,17 +18,15 @@
package org.openapitools.codegen;
import io.swagger.v3.oas.models.ExternalDocumentation;
-import io.swagger.v3.oas.models.media.Discriminator;
-import io.swagger.v3.oas.models.parameters.RequestBody;
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.Map;
import java.util.Set;
-import java.util.Arrays;
public class CodegenOperation {
public final List responseHeaders = new ArrayList();
@@ -40,7 +38,7 @@ public class CodegenOperation {
isRestful, isDeprecated;
public String path, operationId, returnType, httpMethod, returnBaseType,
returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse;
- public Discriminator discriminator;
+ public CodegenDiscriminator discriminator;
public List