From 48c0e4bf0d80e58e3ca6339112788b93c1b48af0 Mon Sep 17 00:00:00 2001 From: Matan Rubin Date: Sun, 18 Dec 2016 18:02:30 +0200 Subject: [PATCH] [JAXRS-CXF] [bug #4422] use java.util.Date when selecting dateLibrary=legacy according to the help message setting dateLibrary to 'legacy' should make the code generator use java.util.Date. before this change, when setting dateLibrary to 'legacy' made the generator use javax.xml.datatype.XMLGregorianCalendar. now, the generator uses java.util.Date such that the documentation and behavior are consistent. --- .../languages/JavaCXFClientCodegen.java | 51 +++++++++---------- .../languages/JavaCXFServerCodegen.java | 1 - .../languages/JavaJAXRSSpecServerCodegen.java | 27 +++++----- 3 files changed, 38 insertions(+), 41 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFClientCodegen.java index d1c9d41ae31..214b73e0e29 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFClientCodegen.java @@ -21,30 +21,30 @@ import io.swagger.models.Operation; public class JavaCXFClientCodegen extends AbstractJavaCodegen - implements BeanValidationFeatures, JaxbFeatures, GzipTestFeatures, LoggingTestFeatures -{ + implements BeanValidationFeatures, JaxbFeatures, GzipTestFeatures, LoggingTestFeatures +{ private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFClientCodegen.class); - + /** * Name of the sub-directory in "src/main/resource" where to find the * Mustache template for the JAX-RS Codegen. */ protected static final String JAXRS_TEMPLATE_DIRECTORY_NAME = "JavaJaxRS"; - + protected boolean useJaxbAnnotations = true; protected boolean useBeanValidation = false; - + protected boolean useGzipFeatureForTests = false; - + protected boolean useLoggingFeatureForTests = false; - + public JavaCXFClientCodegen() { super(); supportsInheritance = true; - + sourceFolder = "src/gen/java"; invokerPackage = "io.swagger.api"; artifactId = "swagger-jaxrs-client"; @@ -52,9 +52,9 @@ public JavaCXFClientCodegen() apiPackage = "io.swagger.api"; modelPackage = "io.swagger.model"; - + outputFolder = "generated-code/JavaJaxRS-CXF"; - + // clear model and api doc template as this codegen // does not support auto-generated markdown doc at the moment //TODO: add doc templates @@ -63,7 +63,6 @@ public JavaCXFClientCodegen() typeMapping.put("date", "LocalDate"); - typeMapping.put("DateTime", "javax.xml.datatype.XMLGregorianCalendar"); // Map DateTime fields to Java standart class 'XMLGregorianCalendar' importMapping.put("LocalDate", "org.joda.time.LocalDate"); @@ -72,11 +71,11 @@ public JavaCXFClientCodegen() cliOptions.add(CliOption.newBoolean(USE_JAXB_ANNOTATIONS, "Use JAXB annotations for XML")); cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations")); - + cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE_FOR_TESTS, "Use Gzip Feature for tests")); cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE_FOR_TESTS, "Use Logging Feature for tests")); - - + + } @@ -84,7 +83,7 @@ public JavaCXFClientCodegen() public void processOpts() { super.processOpts(); - + if (additionalProperties.containsKey(USE_JAXB_ANNOTATIONS)) { boolean useJaxbAnnotationsProp = convertPropertyToBooleanAndWriteBack(USE_JAXB_ANNOTATIONS); this.setUseJaxbAnnotations(useJaxbAnnotationsProp); @@ -94,15 +93,15 @@ public void processOpts() boolean useBeanValidationProp = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION); this.setUseBeanValidation(useBeanValidationProp); } - + this.setUseGzipFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE_FOR_TESTS)); this.setUseLoggingFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE_FOR_TESTS)); - - + + supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen - + writeOptional(outputFolder, new SupportingFile("pom.mustache", "", "pom.xml")); - + } @Override @@ -117,13 +116,13 @@ public CodegenType getTag() { return CodegenType.CLIENT; } - + @Override public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map> operations) { - super.addOperationToGroup(tag, resourcePath, operation, co, operations); + super.addOperationToGroup(tag, resourcePath, operation, co, operations); co.subresourceOperation = !co.path.isEmpty(); } - + @Override public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { super.postProcessModelProperty(model, property); @@ -132,17 +131,17 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert model.imports.remove("JsonSerialize"); model.imports.remove("ToStringSerializer"); } - + @Override public String getHelp() { return "Generates a Java JAXRS Client based on Apache CXF framework."; } - + public void setUseBeanValidation(boolean useBeanValidation) { this.useBeanValidation = useBeanValidation; } - + public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { this.useJaxbAnnotations = useJaxbAnnotations; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFServerCodegen.java index 720cbc49331..8c1b012ba62 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaCXFServerCodegen.java @@ -78,7 +78,6 @@ public JavaCXFServerCodegen() typeMapping.put("date", "LocalDate"); - typeMapping.put("DateTime", "javax.xml.datatype.XMLGregorianCalendar"); // Map DateTime fields to Java standart class 'XMLGregorianCalendar' importMapping.put("LocalDate", "org.joda.time.LocalDate"); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJAXRSSpecServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJAXRSSpecServerCodegen.java index 6c91e175db5..55b2b87da64 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJAXRSSpecServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaJAXRSSpecServerCodegen.java @@ -21,9 +21,9 @@ import io.swagger.models.properties.Property; import io.swagger.util.Json; -public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen -{ - +public class JavaJAXRSSpecServerCodegen extends AbstractJavaJAXRSServerCodegen +{ + public JavaJAXRSSpecServerCodegen() { super(); @@ -48,7 +48,6 @@ public JavaJAXRSSpecServerCodegen() additionalProperties.put("title", title); typeMapping.put("date", "LocalDate"); - typeMapping.put("DateTime", "javax.xml.datatype.XMLGregorianCalendar"); // Map DateTime fields to Java standart class 'XMLGregorianCalendar' importMapping.put("LocalDate", "org.joda.time.LocalDate"); @@ -60,7 +59,7 @@ public JavaJAXRSSpecServerCodegen() break; } } - + CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use"); library.setDefault(DEFAULT_LIBRARY); @@ -71,20 +70,20 @@ public JavaJAXRSSpecServerCodegen() cliOptions.add(library); } - + @Override public void processOpts() { super.processOpts(); - + supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen writeOptional(outputFolder, new SupportingFile("pom.mustache", "", "pom.xml")); - + writeOptional(outputFolder, new SupportingFile("RestApplication.mustache", (sourceFolder + '/' + invokerPackage).replace(".", "/"), "RestApplication.java")); - - } - + + } + @Override public String getName() @@ -119,7 +118,7 @@ public void addOperationToGroup(String tag, String resourcePath, Operation opera opList.add(co); co.baseName = basePath; } - + @Override public void postProcessModelProperty(CodegenModel model, CodegenProperty property) { super.postProcessModelProperty(model, property); @@ -130,10 +129,10 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert model.imports.remove("JsonValue"); model.imports.remove("JsonProperty"); } - + @Override public void preprocessSwagger(Swagger swagger) { - //copy input swagger to output folder + //copy input swagger to output folder try { String swaggerJson = Json.pretty(swagger); FileUtils.writeStringToFile(new File(outputFolder + File.separator + "swagger.json"), swaggerJson);