forked from loafle/openapi-generator-original
[JAVA] OkHttp-GSON deprecated field only deprecates getter method (#15287)
* Deprecate build and setter methods * Test with deprecated property * Update samples * Remove extra line * Regenerate samples
This commit is contained in:
@@ -87,6 +87,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
||||
{{/isXmlAttribute}}
|
||||
{{/withXml}}
|
||||
{{#gson}}
|
||||
{{#deprecated}}
|
||||
@Deprecated
|
||||
{{/deprecated}}
|
||||
@SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}})
|
||||
{{/gson}}
|
||||
{{#vendorExtensions.x-field-extra-annotation}}
|
||||
@@ -138,6 +141,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
||||
{{#vars}}
|
||||
|
||||
{{^isReadOnly}}
|
||||
{{#deprecated}}
|
||||
@Deprecated
|
||||
{{/deprecated}}
|
||||
public {{classname}} {{name}}({{{datatypeWithEnum}}} {{name}}) {
|
||||
{{#vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||
{{^vendorExtensions.x-is-jackson-optional-nullable}}this.{{name}} = {{name}};{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||
@@ -269,7 +275,8 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
|
||||
|
||||
{{^isReadOnly}}
|
||||
{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}}
|
||||
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
|
||||
{{/vendorExtensions.x-setter-extra-annotation}}{{#jackson}}{{^vendorExtensions.x-is-jackson-optional-nullable}}{{> jackson_annotations}}{{/vendorExtensions.x-is-jackson-optional-nullable}}{{/jackson}}{{#deprecated}} @Deprecated
|
||||
{{/deprecated}} public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
|
||||
{{#vendorExtensions.x-is-jackson-optional-nullable}}
|
||||
this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{name}});
|
||||
{{/vendorExtensions.x-is-jackson-optional-nullable}}
|
||||
|
||||
@@ -1982,4 +1982,41 @@ public class JavaClientCodegenTest {
|
||||
" public Pet petType(String petType) {\n");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeprecatedProperty() throws Exception {
|
||||
File output = Files.createTempDirectory("test").toFile();
|
||||
|
||||
final CodegenConfigurator configurator = new CodegenConfigurator()
|
||||
.setGeneratorName("java")
|
||||
.setLibrary(JavaClientCodegen.OKHTTP_GSON)
|
||||
.setInputSpec("src/test/resources/3_0/deprecated-properties.yaml")
|
||||
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
|
||||
|
||||
final ClientOptInput clientOptInput = configurator.toClientOptInput();
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
List<File> files = generator.opts(clientOptInput).generate();
|
||||
|
||||
validateJavaSourceFiles(files);
|
||||
|
||||
// deprecated builder method
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/org/openapitools/client/model/BigDog.java"),
|
||||
"@Deprecated\n" +
|
||||
" public BigDog declawed(Boolean declawed) {");
|
||||
|
||||
// deprecated getter
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/org/openapitools/client/model/BigDog.java"),
|
||||
"@Deprecated\n" +
|
||||
" @javax.annotation.Nullable\n" +
|
||||
"\n" +
|
||||
" public Boolean getDeclawed() {");
|
||||
// deprecated setter
|
||||
TestUtils.assertFileContains(Paths.get(output + "/src/main/java/org/openapitools/client/model/BigDog.java"),
|
||||
"@Deprecated\n" +
|
||||
" public void setDeclawed(Boolean declawed) {");
|
||||
|
||||
|
||||
output.deleteOnExit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Sample API
|
||||
description: API description in Markdown.
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/animals:
|
||||
get:
|
||||
summary: Returns all animals.
|
||||
description: Optional extended description in Markdown.
|
||||
responses:
|
||||
200:
|
||||
description: OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Animal'
|
||||
components:
|
||||
schemas:
|
||||
Dog:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Animal'
|
||||
- type: object
|
||||
properties:
|
||||
breed:
|
||||
type: string
|
||||
Cat:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Animal'
|
||||
- type: object
|
||||
properties:
|
||||
breed:
|
||||
type: string
|
||||
BigDog:
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/Dog'
|
||||
- type: object
|
||||
discriminator:
|
||||
propertyName: dogType
|
||||
required:
|
||||
- dogType
|
||||
properties:
|
||||
dogType:
|
||||
type: string
|
||||
declawed:
|
||||
deprecated: true
|
||||
type: boolean
|
||||
Animal:
|
||||
type: object
|
||||
discriminator:
|
||||
propertyName: className
|
||||
required:
|
||||
- className
|
||||
properties:
|
||||
className:
|
||||
type: string
|
||||
color:
|
||||
type: string
|
||||
default: red
|
||||
@@ -122,6 +122,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
public static final String SERIALIZED_NAME_STATUS = "status";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_STATUS)
|
||||
private StatusEnum status;
|
||||
|
||||
@@ -254,6 +255,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public Pet status(StatusEnum status) {
|
||||
|
||||
this.status = status;
|
||||
@@ -273,6 +275,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setStatus(StatusEnum status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@@ -122,6 +122,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
public static final String SERIALIZED_NAME_STATUS = "status";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_STATUS)
|
||||
private StatusEnum status;
|
||||
|
||||
@@ -254,6 +255,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public Pet status(StatusEnum status) {
|
||||
|
||||
this.status = status;
|
||||
@@ -273,6 +275,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setStatus(StatusEnum status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@@ -125,6 +125,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
public static final String SERIALIZED_NAME_STATUS = "status";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_STATUS)
|
||||
private StatusEnum status;
|
||||
|
||||
@@ -262,6 +263,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public Pet status(StatusEnum status) {
|
||||
|
||||
this.status = status;
|
||||
@@ -282,6 +284,7 @@ public class Pet {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setStatus(StatusEnum status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@@ -57,14 +57,17 @@ public class ObjectWithDeprecatedFields {
|
||||
private String uuid;
|
||||
|
||||
public static final String SERIALIZED_NAME_ID = "id";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_ID)
|
||||
private BigDecimal id;
|
||||
|
||||
public static final String SERIALIZED_NAME_DEPRECATED_REF = "deprecatedRef";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_DEPRECATED_REF)
|
||||
private DeprecatedObject deprecatedRef;
|
||||
|
||||
public static final String SERIALIZED_NAME_BARS = "bars";
|
||||
@Deprecated
|
||||
@SerializedName(SERIALIZED_NAME_BARS)
|
||||
private List<String> bars;
|
||||
|
||||
@@ -93,6 +96,7 @@ public class ObjectWithDeprecatedFields {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public ObjectWithDeprecatedFields id(BigDecimal id) {
|
||||
|
||||
this.id = id;
|
||||
@@ -112,11 +116,13 @@ public class ObjectWithDeprecatedFields {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setId(BigDecimal id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public ObjectWithDeprecatedFields deprecatedRef(DeprecatedObject deprecatedRef) {
|
||||
|
||||
this.deprecatedRef = deprecatedRef;
|
||||
@@ -136,11 +142,13 @@ public class ObjectWithDeprecatedFields {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setDeprecatedRef(DeprecatedObject deprecatedRef) {
|
||||
this.deprecatedRef = deprecatedRef;
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public ObjectWithDeprecatedFields bars(List<String> bars) {
|
||||
|
||||
this.bars = bars;
|
||||
@@ -168,6 +176,7 @@ public class ObjectWithDeprecatedFields {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public void setBars(List<String> bars) {
|
||||
this.bars = bars;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user