From efb337dd92a453f3fbe6fea38cbe991733f238df Mon Sep 17 00:00:00 2001 From: Elizabeth Thomas Date: Tue, 25 Apr 2017 10:11:18 -0500 Subject: [PATCH 1/2] Issue 5413 - Use ConstructorBased Injection for ObjectMapper (#5430) * Converting to constructor based injection * Correcting spelling mistake * Adding the bean for ObjectMapper * Adding files modified by running the petstore scripts * Adding final qualifier to objectMapper variable in apiController mustache --- .../codegen/languages/SpringCodegen.java | 1 - .../JavaSpring/apiController.mustache | 10 ++++++---- .../swaggerUiConfiguration.mustache | 20 ++++++++++++++----- .../java/okhttp-gson/build.gradle | 10 +++++----- .../io/swagger/api/FakeApiController.java | 8 ++++++-- .../java/io/swagger/api/PetApiController.java | 17 ++++++++-------- .../io/swagger/api/StoreApiController.java | 14 +++++++------ .../io/swagger/api/UserApiController.java | 12 +++++++---- .../configuration/SwaggerUiConfiguration.java | 20 ++++++++++++++----- 9 files changed, 72 insertions(+), 40 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java index 21527417f8b..c2b670cf1de 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SpringCodegen.java @@ -13,7 +13,6 @@ import java.io.IOException; import java.io.Writer; import java.util.*; import java.util.regex.Matcher; -import java.util.regex.Pattern; public class SpringCodegen extends AbstractJavaCodegen implements BeanValidationFeatures { diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/apiController.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/apiController.mustache index 83d5957d301..76c283a7678 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/apiController.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/apiController.mustache @@ -32,6 +32,12 @@ import javax.validation.Valid; @Controller {{#operations}} public class {{classname}}Controller implements {{classname}} { + private final ObjectMapper objectMapper; + + public {{classname}}Controller(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + {{#isDelegate}} private final {{classname}}Delegate delegate; @@ -49,11 +55,7 @@ public class {{classname}}Controller implements {{classname}} { {{^isDelegate}} {{^async}} {{#examples}} - {{#-first}} - - ObjectMapper objectMapper = new ObjectMapper(); - {{/-first}} if (accept != null && accept.contains("{{{contentType}}}")) { return new ResponseEntity<{{>returnTypes}}>(objectMapper.readValue("{{#lambdaRemoveLineBreak}}{{#lambdaEscapeDoubleQuote}}{{{example}}}{{/lambdaEscapeDoubleQuote}}{{/lambdaRemoveLineBreak}}", {{>exampleReturnTypes}}.class), HttpStatus.OK); } diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/swaggerUiConfiguration.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/swaggerUiConfiguration.mustache index f47156b68bc..b6493859fcf 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/swaggerUiConfiguration.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/libraries/spring-mvc/swaggerUiConfiguration.mustache @@ -6,6 +6,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Bean; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; @@ -58,14 +59,23 @@ public class SwaggerUiConfiguration extends WebMvcConfigurerAdapter { } } + @Bean + public Jackson2ObjectMapperBuilder builder() { + Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder() + .indentOutput(true) + .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .dateFormat(new RFC3339DateFormat()); + return builder; + } + @Override public void configureMessageConverters(List> converters) { - ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json() - .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - .dateFormat( new RFC3339DateFormat()) - .build(); - converters.add(new MappingJackson2HttpMessageConverter(objectMapper)); + converters.add(new MappingJackson2HttpMessageConverter(objectMapper())); super.configureMessageConverters(converters); } + @Bean + public ObjectMapper objectMapper(){ + return builder().build(); + } } diff --git a/samples/client/petstore-security-test/java/okhttp-gson/build.gradle b/samples/client/petstore-security-test/java/okhttp-gson/build.gradle index d7c6b63ea75..0f403ed63f3 100644 --- a/samples/client/petstore-security-test/java/okhttp-gson/build.gradle +++ b/samples/client/petstore-security-test/java/okhttp-gson/build.gradle @@ -9,8 +9,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.5.+' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath 'com.android.tools.build:gradle:2.3.+' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' } } @@ -25,11 +25,11 @@ if(hasProperty('target') && target == 'android') { apply plugin: 'com.github.dcendents.android-maven' android { - compileSdkVersion 23 - buildToolsVersion '23.0.2' + compileSdkVersion 25 + buildToolsVersion '25.0.2' defaultConfig { minSdkVersion 14 - targetSdkVersion 23 + targetSdkVersion 25 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApiController.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApiController.java index 5bac24daffa..10142374ba0 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApiController.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApiController.java @@ -26,11 +26,15 @@ import javax.validation.Valid; @Controller public class FakeApiController implements FakeApi { + private final ObjectMapper objectMapper; + + public FakeApiController(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + public ResponseEntity testClientModel(@ApiParam(value = "client model" ,required=true ) @Valid @RequestBody Client body, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"client\" : \"aeiou\"}", Client.class), HttpStatus.OK); diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApiController.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApiController.java index 220aa32691d..6fd43dd5ef1 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApiController.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApiController.java @@ -25,6 +25,12 @@ import javax.validation.Valid; @Controller public class PetApiController implements PetApi { + private final ObjectMapper objectMapper; + + public PetApiController(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + public ResponseEntity addPet(@ApiParam(value = "Pet object that needs to be added to the store" ,required=true ) @Valid @RequestBody Pet body, @RequestHeader("Accept") String accept) { // do some magic! @@ -41,13 +47,12 @@ public class PetApiController implements PetApi { public ResponseEntity> findPetsByStatus( @NotNull @ApiParam(value = "Status values that need to be considered for filter", required = true, allowableValues = "available, pending, sold") @RequestParam(value = "status", required = true) List status, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity>(objectMapper.readValue(" 123456789 doggie aeiou aeiou", List.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity>(objectMapper.readValue("[ { \"photoUrls\" : [ \"aeiou\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"aeiou\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"aeiou\", \"id\" : 1 } ], \"status\" : \"available\"} ]", List.class), HttpStatus.OK); } @@ -58,13 +63,12 @@ public class PetApiController implements PetApi { public ResponseEntity> findPetsByTags( @NotNull @ApiParam(value = "Tags to filter by", required = true) @RequestParam(value = "tags", required = true) List tags, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity>(objectMapper.readValue(" 123456789 doggie aeiou aeiou", List.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity>(objectMapper.readValue("[ { \"photoUrls\" : [ \"aeiou\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"aeiou\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"aeiou\", \"id\" : 1 } ], \"status\" : \"available\"} ]", List.class), HttpStatus.OK); } @@ -75,13 +79,12 @@ public class PetApiController implements PetApi { public ResponseEntity getPetById(@ApiParam(value = "ID of pet to return",required=true ) @PathVariable("petId") Long petId, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity(objectMapper.readValue(" 123456789 doggie aeiou aeiou", Pet.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"photoUrls\" : [ \"aeiou\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"aeiou\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"aeiou\", \"id\" : 1 } ], \"status\" : \"available\"}", Pet.class), HttpStatus.OK); } @@ -108,8 +111,6 @@ public class PetApiController implements PetApi { @ApiParam(value = "file detail") @RequestPart("file") MultipartFile file, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"code\" : 0, \"type\" : \"aeiou\", \"message\" : \"aeiou\"}", ModelApiResponse.class), HttpStatus.OK); diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApiController.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApiController.java index 3eb23194cb1..b05a6c92bbf 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApiController.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApiController.java @@ -24,6 +24,12 @@ import javax.validation.Valid; @Controller public class StoreApiController implements StoreApi { + private final ObjectMapper objectMapper; + + public StoreApiController(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + public ResponseEntity deleteOrder(@ApiParam(value = "ID of the order that needs to be deleted",required=true ) @PathVariable("order_id") String orderId, @RequestHeader("Accept") String accept) { // do some magic! @@ -32,8 +38,6 @@ public class StoreApiController implements StoreApi { public ResponseEntity> getInventory(@RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/json")) { return new ResponseEntity>(objectMapper.readValue("{ \"key\" : 0}", Map.class), HttpStatus.OK); @@ -45,13 +49,12 @@ public class StoreApiController implements StoreApi { public ResponseEntity getOrderById( @Min(1) @Max(5)@ApiParam(value = "ID of pet that needs to be fetched",required=true ) @PathVariable("order_id") Long orderId, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity(objectMapper.readValue(" 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true", Order.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}", Order.class), HttpStatus.OK); } @@ -62,13 +65,12 @@ public class StoreApiController implements StoreApi { public ResponseEntity placeOrder(@ApiParam(value = "order placed for purchasing the pet" ,required=true ) @Valid @RequestBody Order body, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity(objectMapper.readValue(" 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true", Order.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}", Order.class), HttpStatus.OK); } diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApiController.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApiController.java index d8cac8d5eb8..ec36309143e 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApiController.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApiController.java @@ -24,6 +24,12 @@ import javax.validation.Valid; @Controller public class UserApiController implements UserApi { + private final ObjectMapper objectMapper; + + public UserApiController(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + public ResponseEntity createUser(@ApiParam(value = "Created user object" ,required=true ) @Valid @RequestBody User body, @RequestHeader("Accept") String accept) { // do some magic! @@ -51,13 +57,12 @@ public class UserApiController implements UserApi { public ResponseEntity getUserByName(@ApiParam(value = "The name that needs to be fetched. Use user1 for testing. ",required=true ) @PathVariable("username") String username, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity(objectMapper.readValue(" 123456789 aeiou aeiou aeiou aeiou aeiou aeiou 123", User.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("{ \"firstName\" : \"aeiou\", \"lastName\" : \"aeiou\", \"password\" : \"aeiou\", \"userStatus\" : 6, \"phone\" : \"aeiou\", \"id\" : 0, \"email\" : \"aeiou\", \"username\" : \"aeiou\"}", User.class), HttpStatus.OK); } @@ -69,13 +74,12 @@ public class UserApiController implements UserApi { @NotNull @ApiParam(value = "The password for login in clear text", required = true) @RequestParam(value = "password", required = true) String password, @RequestHeader("Accept") String accept) throws IOException { // do some magic! - - ObjectMapper objectMapper = new ObjectMapper(); if (accept != null && accept.contains("application/xml")) { return new ResponseEntity(objectMapper.readValue("aeiou", String.class), HttpStatus.OK); } + if (accept != null && accept.contains("application/json")) { return new ResponseEntity(objectMapper.readValue("\"aeiou\"", String.class), HttpStatus.OK); } diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java index e05672181db..af1f1da2b60 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/configuration/SwaggerUiConfiguration.java @@ -6,6 +6,7 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.Bean; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; @@ -58,14 +59,23 @@ public class SwaggerUiConfiguration extends WebMvcConfigurerAdapter { } } + @Bean + public Jackson2ObjectMapperBuilder builder() { + Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder() + .indentOutput(true) + .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) + .dateFormat(new RFC3339DateFormat()); + return builder; + } + @Override public void configureMessageConverters(List> converters) { - ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json() - .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) - .dateFormat( new RFC3339DateFormat()) - .build(); - converters.add(new MappingJackson2HttpMessageConverter(objectMapper)); + converters.add(new MappingJackson2HttpMessageConverter(objectMapper())); super.configureMessageConverters(converters); } + @Bean + public ObjectMapper objectMapper(){ + return builder().build(); + } } From 702f193f6191a8f6d0b59f2d34292c616e7bcc4d Mon Sep 17 00:00:00 2001 From: Elizabeth Thomas Date: Tue, 25 Apr 2017 10:28:16 -0500 Subject: [PATCH 2/2] Issue#5376- changes to include swagger version in generated api files (#5449) * Elizabeth - changes to include swagger version in generated api files * Filtering version.properties in swagger codegen module * Removing resource filtering from swagger codegen cli module * Merging master --- .gitignore | 2 +- modules/swagger-codegen-cli/pom.xml | 12 ------------ .../src/main/resources/version.properties | 1 - modules/swagger-codegen/pom.xml | 11 +++++++++++ .../java/io/swagger/codegen/DefaultGenerator.java | 6 +++--- .../main/java/io/swagger/codegen/cmd/ConfigHelp.java | 0 .../main/java/io/swagger/codegen/cmd/Generate.java | 0 .../src/main/java/io/swagger/codegen/cmd/Langs.java | 0 .../src/main/java/io/swagger/codegen/cmd/Meta.java | 0 .../main/java/io/swagger/codegen/cmd/Version.java | 0 .../src/main/resources/JavaSpring/api.mustache | 6 ++++++ .../src/main/resources/version.properties | 1 + .../src/main/java/io/swagger/api/FakeApi.java | 6 ++++++ .../src/main/java/io/swagger/api/PetApi.java | 6 ++++++ .../src/main/java/io/swagger/api/StoreApi.java | 6 ++++++ .../src/main/java/io/swagger/api/UserApi.java | 6 ++++++ 16 files changed, 46 insertions(+), 17 deletions(-) delete mode 100644 modules/swagger-codegen-cli/src/main/resources/version.properties rename modules/{swagger-codegen-cli => swagger-codegen}/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java (100%) rename modules/{swagger-codegen-cli => swagger-codegen}/src/main/java/io/swagger/codegen/cmd/Generate.java (100%) rename modules/{swagger-codegen-cli => swagger-codegen}/src/main/java/io/swagger/codegen/cmd/Langs.java (100%) rename modules/{swagger-codegen-cli => swagger-codegen}/src/main/java/io/swagger/codegen/cmd/Meta.java (100%) rename modules/{swagger-codegen-cli => swagger-codegen}/src/main/java/io/swagger/codegen/cmd/Version.java (100%) create mode 100644 modules/swagger-codegen/src/main/resources/version.properties diff --git a/.gitignore b/.gitignore index 370da9c3256..40b435db240 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ out/ *.iws classpath.txt version.properties -!modules/swagger-codegen-cli/src/main/resources/version.properties +!modules/swagger-codegen/src/main/resources/version.properties .project .classpath lib/* diff --git a/modules/swagger-codegen-cli/pom.xml b/modules/swagger-codegen-cli/pom.xml index e175b2c4585..2843f3ffc40 100644 --- a/modules/swagger-codegen-cli/pom.xml +++ b/modules/swagger-codegen-cli/pom.xml @@ -18,7 +18,6 @@ src/main/resources - true logback.xml @@ -79,17 +78,6 @@ swagger-codegen ${project.version} - - - io.airlift - airline - 0.7 - - - com.googlecode.lambdaj - lambdaj - 2.3.3 - org.slf4j slf4j-simple diff --git a/modules/swagger-codegen-cli/src/main/resources/version.properties b/modules/swagger-codegen-cli/src/main/resources/version.properties deleted file mode 100644 index 410af8cc687..00000000000 --- a/modules/swagger-codegen-cli/src/main/resources/version.properties +++ /dev/null @@ -1 +0,0 @@ -version = ${project.version} diff --git a/modules/swagger-codegen/pom.xml b/modules/swagger-codegen/pom.xml index 05206eb2f9b..7d4320cf086 100644 --- a/modules/swagger-codegen/pom.xml +++ b/modules/swagger-codegen/pom.xml @@ -16,6 +16,7 @@ src/main/resources + true logback.xml @@ -249,6 +250,16 @@ commons-cli ${commons-cli-version} + + io.airlift + airline + 0.7 + + + com.googlecode.lambdaj + lambdaj + 2.3.3 + org.testng testng diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java index 665b6dfd5dd..209960cbcff 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultGenerator.java @@ -2,6 +2,7 @@ package io.swagger.codegen; import com.samskivert.mustache.Mustache; import com.samskivert.mustache.Template; +import io.swagger.codegen.cmd.Version; import io.swagger.codegen.ignore.CodegenIgnoreProcessor; import io.swagger.models.*; import io.swagger.models.auth.OAuth2Definition; @@ -10,6 +11,7 @@ import io.swagger.models.parameters.Parameter; import io.swagger.util.Json; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,8 +19,6 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.util.*; -import org.apache.commons.lang3.StringUtils; - public class DefaultGenerator extends AbstractGenerator implements Generator { protected final Logger LOGGER = LoggerFactory.getLogger(DefaultGenerator.class); protected CodegenConfig config; @@ -127,8 +127,8 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { config.processOpts(); config.preprocessSwagger(swagger); // TODO need to obtain version from a file instead of hardcoding it - config.additionalProperties().put("generatorVersion", "2.2.3-SNAPSHOT"); config.additionalProperties().put("generatedDate", DateTime.now().toString()); + config.additionalProperties().put("generatorVersion", Version.readVersionFromResources()); config.additionalProperties().put("generatorClass", config.getClass().getName()); config.additionalProperties().put("inputSpec", config.getInputSpec()); if (swagger.getVendorExtensions() != null) { diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java similarity index 100% rename from modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java rename to modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/ConfigHelp.java diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Generate.java similarity index 100% rename from modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Generate.java rename to modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Generate.java diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Langs.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Langs.java similarity index 100% rename from modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Langs.java rename to modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Langs.java diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Meta.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Meta.java similarity index 100% rename from modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Meta.java rename to modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Meta.java diff --git a/modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Version.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Version.java similarity index 100% rename from modules/swagger-codegen-cli/src/main/java/io/swagger/codegen/cmd/Version.java rename to modules/swagger-codegen/src/main/java/io/swagger/codegen/cmd/Version.java diff --git a/modules/swagger-codegen/src/main/resources/JavaSpring/api.mustache b/modules/swagger-codegen/src/main/resources/JavaSpring/api.mustache index 0e23cd4f59b..961ccbb5806 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpring/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpring/api.mustache @@ -1,3 +1,9 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program ({{{generatorVersion}}}). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ + package {{package}}; {{#imports}}import {{import}}; diff --git a/modules/swagger-codegen/src/main/resources/version.properties b/modules/swagger-codegen/src/main/resources/version.properties new file mode 100644 index 00000000000..713c915800a --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/version.properties @@ -0,0 +1 @@ +version = ${project.version} \ No newline at end of file diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApi.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApi.java index d8b307a1f23..b785ec808b1 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/FakeApi.java @@ -1,3 +1,9 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.2.3-SNAPSHOT). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ + package io.swagger.api; import java.math.BigDecimal; diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApi.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApi.java index 5816fb5b92e..a21a1d70a45 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/PetApi.java @@ -1,3 +1,9 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.2.3-SNAPSHOT). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ + package io.swagger.api; import io.swagger.model.ModelApiResponse; diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApi.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApi.java index fb8f3d706f5..7077532a3e5 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/StoreApi.java @@ -1,3 +1,9 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.2.3-SNAPSHOT). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ + package io.swagger.api; import java.util.Map; diff --git a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApi.java b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApi.java index 53899d1eddd..a4535afce65 100644 --- a/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApi.java +++ b/samples/server/petstore/spring-mvc/src/main/java/io/swagger/api/UserApi.java @@ -1,3 +1,9 @@ +/** + * NOTE: This class is auto generated by the swagger code generator program (2.2.3-SNAPSHOT). + * https://github.com/swagger-api/swagger-codegen + * Do not edit the class manually. + */ + package io.swagger.api; import java.util.List;