Skip to content

[JAXRS] Format not respected for primitive datatype Definition models #7754

Open
@jraylee

Description

@jraylee
Description

The format for a primitive datatype definition is not respected when referenced from other definitions or responses.

Swagger-codegen version

Originally seen in 2.3.0 but also in master

Swagger declaration file content or url

sample api.yml

swagger: '2.0'
info:
  title: 'Test'
  description:
  version: 0.0.1
  contact:
    name: 'justine'
basePath: /api/

paths:
  /test:
    get:
      operationId: test_operation
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/Test'

definitions:
  Test:
    type: object
    properties:
      Long1:
        $ref: "#/definitions/LongProperty"

      Long2:
        type: integer
        format: int64

  LongProperty:
    type: integer
    format: int64

Generated Test model class (partial)

public class Test   {
  @JsonProperty("Long1")
  private Integer long1 = null;

  @JsonProperty("Long2")
  private Long long2 = null;

  public Test long1(Integer long1) {
    this.long1 = long1;
    return this;
  }
...
}
Command line used for generation

swagger-codegen generate -i api.yml -l jaxrs

Steps to reproduce

Copy paste example api.yml file
Run command line
Go to src/gen/java/io/swagger/model/Test.java and the Long1 field will be an Integer but the Long2 field is a Long.

Suggest a fix/enhancement

The format property should be respected for primitive datatype Definitions.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions