Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#vendorExtensi
{{{.}}}
{{/vendorExtensions.x-field-extra-annotation}}
{{#isContainer}}
private {{{datatypeWithEnum}}} {{name}}{{#required}} = {{{defaultValue}}}{{/required}}{{^required}} = null{{/required}};
protected {{{datatypeWithEnum}}} {{name}}{{#required}} = {{{defaultValue}}}{{/required}}{{^required}} = null{{/required}};
{{/isContainer}}
{{^isContainer}}
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
protected {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
{{/isContainer}}
{{/vars}}
{{>additional_properties}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,5 +235,31 @@ public void testGeneratedApiExceptionMapperDoesNotHaveProviderAnnotationWhenDisa
.assertTypeAnnotations()
.doesNotContainWithName("Provider");
}

@Test
public void testClientCanAccessFieldInParent() throws Exception {
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
output.deleteOnExit();

OpenAPI openAPI = new OpenAPIParser()
.readLocation("src/test/resources/bugs/issue_23034.yaml", null, new ParseOptions()).getOpenAPI();

codegen.setOutputDir(output.getAbsolutePath());
codegen.additionalProperties().put(JavaClientCodegen.MICROPROFILE_GLOBAL_EXCEPTION_MAPPER, "false");

ClientOptInput input = new ClientOptInput()
.openAPI(openAPI)
.config(codegen);

List<File> files = new DefaultGenerator().opts(input).generate();

Map<String, File> filesMap = files.stream()
.collect(Collectors.toMap(File::getName, Function.identity()));

validateJavaSourceFiles(files);

JavaFileAssert.assertThat(filesMap.get("Parent.java"))
.fileContains("protected String parentField;");
}
}

47 changes: 47 additions & 0 deletions modules/openapi-generator/src/test/resources/bugs/issue_23034.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
openapi: 3.0.4
info:
title: Reproduce
version: 'v1'
components:
schemas:
Child:
required:
- childField1
type: object
allOf:
- $ref: "#/components/schemas/Parent"
properties:
childField1:
type: string

Parent:
required:
- classType
- parentField
type: object
properties:
parentField:
type: string
readOnly: true
classType:
description: Identifier of discriminator mapping class.
enum:
- Child
type: string
discriminator:
propertyName: classType
mapping:
Child: "#/components/schemas/Child"
paths:
'/v1/reproduce':
get:
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Child'
description: 'reproduce'
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ public class Category {

public static final String JSON_PROPERTY_ID = "id";

private Long id;
protected Long id;

public static final String JSON_PROPERTY_NAME = "name";

private String name;
protected String name;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ public class ModelApiResponse {

public static final String JSON_PROPERTY_CODE = "code";

private Integer code;
protected Integer code;

public static final String JSON_PROPERTY_TYPE = "type";

private String type;
protected String type;

public static final String JSON_PROPERTY_MESSAGE = "message";

private String message;
protected String message;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,19 @@ public class Order {

public static final String JSON_PROPERTY_ID = "id";

private Long id;
protected Long id;

public static final String JSON_PROPERTY_PET_ID = "petId";

private Long petId;
protected Long petId;

public static final String JSON_PROPERTY_QUANTITY = "quantity";

private Integer quantity;
protected Integer quantity;

public static final String JSON_PROPERTY_SHIP_DATE = "shipDate";

private Date shipDate;
protected Date shipDate;

public enum StatusEnum {

Expand Down Expand Up @@ -92,11 +92,11 @@ public static StatusEnum fromValue(String value) {
* Order Status
*/

private StatusEnum status;
protected StatusEnum status;

public static final String JSON_PROPERTY_COMPLETE = "complete";

private Boolean complete = false;
protected Boolean complete = false;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,23 @@ public class Pet {

public static final String JSON_PROPERTY_ID = "id";

private Long id;
protected Long id;

public static final String JSON_PROPERTY_CATEGORY = "category";

private Category category;
protected Category category;

public static final String JSON_PROPERTY_NAME = "name";

private String name;
protected String name;

public static final String JSON_PROPERTY_PHOTO_URLS = "photoUrls";

private List<String> photoUrls = new ArrayList<>();
protected List<String> photoUrls = new ArrayList<>();

public static final String JSON_PROPERTY_TAGS = "tags";

private List<Tag> tags = null;
protected List<Tag> tags = null;

public enum StatusEnum {

Expand Down Expand Up @@ -100,7 +100,7 @@ public static StatusEnum fromValue(String value) {
* pet status in the store
*/

private StatusEnum status;
protected StatusEnum status;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ public class Tag {

public static final String JSON_PROPERTY_ID = "id";

private Long id;
protected Long id;

public static final String JSON_PROPERTY_NAME = "name";

private String name;
protected String name;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,38 +42,38 @@ public class User {

public static final String JSON_PROPERTY_ID = "id";

private Long id;
protected Long id;

public static final String JSON_PROPERTY_USERNAME = "username";

private String username;
protected String username;

public static final String JSON_PROPERTY_FIRST_NAME = "firstName";

private String firstName;
protected String firstName;

public static final String JSON_PROPERTY_LAST_NAME = "lastName";

private String lastName;
protected String lastName;

public static final String JSON_PROPERTY_EMAIL = "email";

private String email;
protected String email;

public static final String JSON_PROPERTY_PASSWORD = "password";

private String password;
protected String password;

public static final String JSON_PROPERTY_PHONE = "phone";

private String phone;
protected String phone;

public static final String JSON_PROPERTY_USER_STATUS = "userStatus";
/**
* User Status
*/

private Integer userStatus;
protected Integer userStatus;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ public class Category {

public static final String JSON_PROPERTY_ID = "id";
@XmlElement(name = "id")
private Long id;
protected Long id;

public static final String JSON_PROPERTY_NAME = "name";
@XmlElement(name = "name")
private String name;
protected String name;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ public class ModelApiResponse {

public static final String JSON_PROPERTY_CODE = "code";
@XmlElement(name = "code")
private Integer code;
protected Integer code;

public static final String JSON_PROPERTY_TYPE = "type";
@XmlElement(name = "type")
private String type;
protected String type;

public static final String JSON_PROPERTY_MESSAGE = "message";
@XmlElement(name = "message")
private String message;
protected String message;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,19 @@ public class Order {

public static final String JSON_PROPERTY_ID = "id";
@XmlElement(name = "id")
private Long id;
protected Long id;

public static final String JSON_PROPERTY_PET_ID = "petId";
@XmlElement(name = "petId")
private Long petId;
protected Long petId;

public static final String JSON_PROPERTY_QUANTITY = "quantity";
@XmlElement(name = "quantity")
private Integer quantity;
protected Integer quantity;

public static final String JSON_PROPERTY_SHIP_DATE = "shipDate";
@XmlElement(name = "shipDate")
private Date shipDate;
protected Date shipDate;

@XmlType(name="StatusEnum")
@XmlEnum(String.class)
Expand Down Expand Up @@ -104,11 +104,11 @@ public static StatusEnum fromValue(String v) {
/**
* Order Status
*/
private StatusEnum status;
protected StatusEnum status;

public static final String JSON_PROPERTY_COMPLETE = "complete";
@XmlElement(name = "complete")
private Boolean complete = false;
protected Boolean complete = false;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,25 @@ public class Pet {

public static final String JSON_PROPERTY_ID = "id";
@XmlElement(name = "id")
private Long id;
protected Long id;

public static final String JSON_PROPERTY_CATEGORY = "category";
@XmlElement(name = "Category")
private Category category;
protected Category category;

public static final String JSON_PROPERTY_NAME = "name";
@XmlElement(name = "name")
private String name;
protected String name;

public static final String JSON_PROPERTY_PHOTO_URLS = "photoUrls";
@XmlElement(name = "photoUrl")
@XmlElementWrapper(name = "photoUrl")
private List<String> photoUrls = new ArrayList<>();
protected List<String> photoUrls = new ArrayList<>();

public static final String JSON_PROPERTY_TAGS = "tags";
@XmlElement(name = "Tag")
@XmlElementWrapper(name = "tag")
private List<Tag> tags = null;
protected List<Tag> tags = null;

@XmlType(name="StatusEnum")
@XmlEnum(String.class)
Expand Down Expand Up @@ -114,7 +114,7 @@ public static StatusEnum fromValue(String v) {
/**
* pet status in the store
*/
private StatusEnum status;
protected StatusEnum status;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ public class Tag {

public static final String JSON_PROPERTY_ID = "id";
@XmlElement(name = "id")
private Long id;
protected Long id;

public static final String JSON_PROPERTY_NAME = "name";
@XmlElement(name = "name")
private String name;
protected String name;


/**
Expand Down
Loading
Loading