From b6eb0eba36ac21cafb0e24ff5768ab30e1b03002 Mon Sep 17 00:00:00 2001 From: jfiala Date: Thu, 3 Nov 2016 19:24:43 +0100 Subject: [PATCH 01/42] add json annotations --- .../main/resources/JavaJaxRS/cxf/api.mustache | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index f1efbe87c63..a29be5e3a3e 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -1,36 +1,38 @@ -package {{package}}; - -{{#imports}}import {{import}}; -{{/imports}} - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import javax.ws.rs.*; -import javax.ws.rs.core.Response; - -import org.apache.cxf.jaxrs.ext.multipart.*; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -{{#useBeanValidation}} -import javax.validation.constraints.*; -{{/useBeanValidation}} - -@Path("/") -@Api(value = "/", description = "{{description}}") -public interface {{classname}} { -{{#operations}} -{{#operation}} - - @{{httpMethod}} - {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} - {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} - {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} - @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); -{{/operation}} -} -{{/operations}} - +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +{{#useBeanValidation}} +import javax.validation.constraints.*; +{{/useBeanValidation}} + +@Path("/") +@Api(value = "/", description = "{{description}}") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface {{classname}} { +{{#operations}} +{{#operation}} + + @{{httpMethod}} + {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} + {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} + {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} + @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); +{{/operation}} +} +{{/operations}} + From 9bd521ec0ca3049e7d1c161ae2334d6fe7e5b805 Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 21:25:13 +0100 Subject: [PATCH 02/42] add cli flag to check for jaxb annotations --- .../codegen/languages/JavaCXFClientCodegen.java | 13 +++++++++++++ .../codegen/languages/JavaCXFServerCodegen.java | 16 +++++++++++++++- .../codegen/languages/features/CXFFeatures.java | 4 ++++ .../main/resources/JavaJaxRS/cxf/pojo.mustache | 5 ++++- 4 files changed, 36 insertions(+), 2 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 15bf08191a5..87664e143d0 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 @@ -28,6 +28,8 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeat */ protected static final String JAXRS_TEMPLATE_DIRECTORY_NAME = "JavaJaxRS"; + protected boolean useJaxbAnnotations = true; + protected boolean useBeanValidation = false; protected boolean useGzipFeature = false; @@ -67,6 +69,8 @@ public JavaCXFClientCodegen() embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf"; + 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, "Use Gzip Feature")); @@ -82,6 +86,11 @@ public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(USE_JAXB_ANNOTATIONS)) { + boolean useJaxbAnnotationsProp = convertPropertyToBooleanAndWriteBack(USE_JAXB_ANNOTATIONS); + this.setUseJaxbAnnotations(useJaxbAnnotationsProp); + } + if (additionalProperties.containsKey(USE_BEANVALIDATION)) { boolean useBeanValidationProp = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION); this.setUseBeanValidation(useBeanValidationProp); @@ -155,4 +164,8 @@ public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { this.useBeanValidationFeature = useBeanValidationFeature; } + 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 ced60722790..96a317734b4 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 @@ -20,6 +20,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFServerCodegen.class); + protected boolean useJaxbAnnotations = true; + protected boolean useBeanValidation = false; protected boolean generateSpringApplication = false; @@ -64,6 +66,8 @@ public JavaCXFServerCodegen() embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf"; + 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(GENERATE_SPRING_APPLICATION, "Generate Spring application")); @@ -85,6 +89,11 @@ public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(USE_JAXB_ANNOTATIONS)) { + boolean useJaxbAnnotationsProp = convertPropertyToBooleanAndWriteBack(USE_JAXB_ANNOTATIONS); + this.setUseJaxbAnnotations(useJaxbAnnotationsProp); + } + if (additionalProperties.containsKey(USE_BEANVALIDATION)) { boolean useBeanValidationProp = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION); this.setUseBeanValidation(useBeanValidationProp); @@ -204,7 +213,12 @@ public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { this.useBeanValidationFeature = useBeanValidationFeature; } - public void setGenerateSpringBootApplication(boolean generateSpringBootApplication) { + public void setGenerateSpringBootApplication(boolean generateSpringBootApplication) { this.generateSpringBootApplication = generateSpringBootApplication; } + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { + this.useJaxbAnnotations = useJaxbAnnotations; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java index 64fa569c83f..6fcceb66e8b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java @@ -6,4 +6,8 @@ */ public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures, BeanValidationExtendedFeatures { + public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations); + } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache index 382b8372daa..999bb28bfad 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache @@ -6,12 +6,14 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlEnum; +{{#useJaxbAnnotations}} @XmlAccessorType(XmlAccessType.FIELD) {{#hasVars}} @XmlType(name = "{{classname}}", propOrder = { {{#vars}}"{{name}}"{{^-last}}, {{/-last}}{{/vars}} }){{/hasVars}} {{^hasVars}}@XmlType(name = "{{classname}}"){{/hasVars}} {{^parent}}@XmlRootElement(name="{{classname}}"){{/parent}} +{{/useJaxbAnnotations}} {{#description}} @ApiModel(description="{{{description}}}") {{/description}} @@ -21,8 +23,9 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { {{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/items}}{{/items.isEnum}} - +{{#useJaxbAnnotations}} @XmlElement(name="{{baseName}}") +{{/useJaxbAnnotations}} @ApiModelProperty({{#example}}example = "{{example}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}") private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} From f91ebdf1a0ef05d25f97fd60937f6760ca14e696 Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 21:53:26 +0100 Subject: [PATCH 03/42] add CLI-flag for switching Spring-XML or annotation config #4088 --- .../swagger/codegen/languages/JavaCXFServerCodegen.java | 7 +++++++ .../codegen/languages/features/SpringFeatures.java | 4 ++++ .../main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache | 6 ++++++ .../JavaJaxRS/cxf/server/ApplicationContext.xml.mustache | 8 ++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) 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 96a317734b4..9673b286a6c 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 @@ -26,6 +26,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean generateSpringApplication = false; + protected boolean useSpringAnnotationConfig = false; + protected boolean useSwaggerFeature = false; protected boolean useWadlFeature = false; @@ -70,6 +72,7 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_APPLICATION, "Generate Spring application")); + cliOptions.add(CliOption.newBoolean(USE_SPRING_ANNOTATION_CONFIG, "Use Spring Annotation Config")); cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use Swagger Feature")); cliOptions.add(CliOption.newBoolean(USE_WADL_FEATURE, "Use WADL Feature")); @@ -107,6 +110,7 @@ public void processOpts() this.setUseMultipartFeature(convertPropertyToBooleanAndWriteBack(USE_MULTIPART_FEATURE)); this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseSpringAnnotationConfig(convertPropertyToBooleanAndWriteBack(USE_SPRING_ANNOTATION_CONFIG)); boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); this.setUseBeanValidationFeature(useBeanValidationFeature); @@ -183,6 +187,9 @@ public void setGenerateSpringApplication(boolean generateSpringApplication) { this.generateSpringApplication = generateSpringApplication; } + public void setUseSpringAnnotationConfig(boolean useSpringAnnotationConfig) { + this.useSpringAnnotationConfig = useSpringAnnotationConfig; + } public void setUseSwaggerFeature(boolean useSwaggerFeature) { this.useSwaggerFeature = useSwaggerFeature; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java index e7cb6c18228..0a3fad4202a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java @@ -6,9 +6,13 @@ public interface SpringFeatures extends BeanValidationFeatures { public static final String GENERATE_SPRING_BOOT_APPLICATION = "generateSpringBootApplication"; + public static final String USE_SPRING_ANNOTATION_CONFIG = "useSpringAnnotationConfig"; + public void setGenerateSpringApplication(boolean useGenerateSpringApplication); public void setGenerateSpringBootApplication(boolean generateSpringBootApplication); + public void setUseSpringAnnotationConfig(boolean useSpringAnnotationConfig); + } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache index 9b55d4c7551..37121d702de 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache @@ -16,7 +16,13 @@ import org.apache.cxf.jaxrs.model.wadl.DocTarget; import org.apache.cxf.jaxrs.ext.multipart.*; import io.swagger.annotations.Api; +{{#useSpringAnnotationConfig}} +import org.springframework.stereotype.Service; +{{/useSpringAnnotationConfig}} +{{#useSpringAnnotationConfig}} +@Service("{{classname}}") +{{/useSpringAnnotationConfig}} {{#description}} {{/description}} public class {{classname}}ServiceImpl implements {{classname}} { diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache index 2cb4720da8c..9d5d53d5619 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache @@ -11,8 +11,6 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"> - - @@ -23,11 +21,17 @@ {{/useMultipartFeature}} +{{#useSpringAnnotationConfig}} + + +{{/useSpringAnnotationConfig}} +{{#^useSpringAnnotationConfig}} {{#apiInfo}} {{#apis}} {{/apis}} {{/apiInfo}} +{{/^useSpringAnnotationConfig}} {{#useSwaggerFeature}} From 15f740e7e3616d2fc6b83da3d9fad76008e449ef Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 22:05:12 +0100 Subject: [PATCH 04/42] add cli flag for generating jboss depl. descriptor #4088 --- .../languages/JavaCXFServerCodegen.java | 22 ++++++++++++++++--- .../languages/features/CXFServerFeatures.java | 3 ++- .../languages/features/JbossFeature.java | 9 ++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java 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 9673b286a6c..d4dcb103adb 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 @@ -42,6 +42,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean generateSpringBootApplication= false; + protected boolean generateJbossDeploymentDescriptor = false; + public JavaCXFServerCodegen() { super(); @@ -82,6 +84,8 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_BOOT_APPLICATION, "Generate Spring Boot application")); + cliOptions.add( + CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor")); } @@ -120,8 +124,13 @@ public void processOpts() this.setGenerateSpringBootApplication(convertPropertyToBooleanAndWriteBack(GENERATE_SPRING_BOOT_APPLICATION)); } - + if (additionalProperties.containsKey(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)) { + boolean generateJbossDeploymentDescriptorProp = convertPropertyToBooleanAndWriteBack( + GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + this.setGenerateJbossDeploymentDescriptor(generateJbossDeploymentDescriptorProp); + } + supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen writeOptional(outputFolder, new SupportingFile("server/pom.mustache", "", "pom.xml")); @@ -137,8 +146,11 @@ public void processOpts() ("src/main/webapp/WEB-INF"), "context.xml")); // Jboss - writeOptional(outputFolder, new SupportingFile("server/jboss-web.xml.mustache", - ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + if (generateJbossDeploymentDescriptor) { + writeOptional(outputFolder, new SupportingFile("server/jboss-web.xml.mustache", + ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + + } // Spring Boot if (this.generateSpringBootApplication) { @@ -228,4 +240,8 @@ public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { this.useJaxbAnnotations = useJaxbAnnotations; } + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor) { + this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index 5c12aaedef6..8b20914fa6d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -4,7 +4,8 @@ * Features supported by CXF 3 server * */ -public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures { +public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature +{ public static final String USE_WADL_FEATURE = "useWadlFeature"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java new file mode 100644 index 00000000000..9cbbd34be81 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java @@ -0,0 +1,9 @@ +package io.swagger.codegen.languages.features; + +public interface JbossFeature { + + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "generateJbossDeploymentDescriptor"; + + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor); + +} From 821c54a74d28e97e104662c04c2feb87b873897e Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 22:08:29 +0100 Subject: [PATCH 05/42] add JbossFeature CLI flag to Resteasy #4088 --- .../languages/JavaResteasyServerCodegen.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java index d2a462c1e2d..c1bd8a23cd5 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java @@ -1,6 +1,7 @@ package io.swagger.codegen.languages; import io.swagger.codegen.*; +import io.swagger.codegen.languages.features.JbossFeature; import io.swagger.models.Operation; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -8,7 +9,9 @@ import java.io.File; import java.util.*; -public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen { +public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen implements JbossFeature { + + protected boolean generateJbossDeploymentDescriptor = true; public JavaResteasyServerCodegen() { @@ -31,6 +34,9 @@ public JavaResteasyServerCodegen() { dateLibrary = "legacy";// TODO: change to joda embeddedTemplateDir = templateDir = "JavaJaxRS" + File.separator + "resteasy"; + + cliOptions.add( + CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor")); } @Override @@ -47,6 +53,12 @@ public String getHelp() { public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)) { + boolean generateJbossDeploymentDescriptorProp = convertPropertyToBooleanAndWriteBack( + GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + this.setGenerateJbossDeploymentDescriptor(generateJbossDeploymentDescriptorProp); + } + writeOptional(outputFolder, new SupportingFile("pom.mustache", "", "pom.xml")); writeOptional(outputFolder, new SupportingFile("gradle.mustache", "", "build.gradle")); writeOptional(outputFolder, new SupportingFile("settingsGradle.mustache", "", "settings.gradle")); @@ -61,8 +73,12 @@ public void processOpts() { (sourceFolder + '/' + apiPackage).replace(".", "/"), "NotFoundException.java")); writeOptional(outputFolder, new SupportingFile("web.mustache", ("src/main/webapp/WEB-INF"), "web.xml")); - writeOptional(outputFolder, new SupportingFile("jboss-web.mustache", + + if (generateJbossDeploymentDescriptor) { + writeOptional(outputFolder, new SupportingFile("jboss-web.mustache", ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + } + writeOptional(outputFolder, new SupportingFile("RestApplication.mustache", (sourceFolder + '/' + invokerPackage).replace(".", "/"), "RestApplication.java")); supportingFiles.add(new SupportingFile("StringUtil.mustache", @@ -198,4 +214,8 @@ public Map postProcessModelsEnum(Map objs) { return objs; } + + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor) { + this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; + } } From 460257e281c9310aa2f08a90e728e58b9f47b48c Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 23:02:48 +0100 Subject: [PATCH 06/42] update/add tests #4088 --- .../jaxrs/JavaResteasyServerOptionsTest.java | 63 +++++++++++++++++++ .../jaxrs/JaxrsCXFServerOptionsTest.java | 11 +++- .../options/JavaCXFServerOptionsProvider.java | 12 ++++ .../JavaResteasyServerOptionsProvider.java | 42 +++++++++++++ 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java new file mode 100644 index 00000000000..d86ef21c0bf --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java @@ -0,0 +1,63 @@ +package io.swagger.codegen.jaxrs; + +import io.swagger.codegen.AbstractOptionsTest; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.languages.JavaResteasyServerCodegen; +import io.swagger.codegen.options.JavaResteasyServerOptionsProvider; +import io.swagger.codegen.options.OptionsProvider; +import mockit.Expectations; +import mockit.Tested; + +public class JavaResteasyServerOptionsTest extends AbstractOptionsTest { + + @Tested + private JavaResteasyServerCodegen clientCodegen; + + public JavaResteasyServerOptionsTest() { + super(new JavaResteasyServerOptionsProvider()); + } + + protected JavaResteasyServerOptionsTest(OptionsProvider optionsProvider) { + super(optionsProvider); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @Override + protected void setExpectations() { + new Expectations(clientCodegen) {{ + clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen.setSerializableModel(Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + }}; + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index 99a88680a9e..bf4fb033fd3 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -73,7 +73,16 @@ protected void setExpectations() { clientCodegen.setGenerateSpringBootApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); times = 1; - + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + clientCodegen.setUseSpringAnnotationConfig( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; }}; } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java index 97626bf87af..7c7a0ad69b1 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java @@ -9,6 +9,8 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { + public static final String USE_JAXB_ANNOTATIONS = "true"; + public static final String GENERATE_SPRING_APPLICATION = "true"; public static final String USE_SWAGGER_FEATURE = "true"; @@ -23,8 +25,12 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { public static final String USE_BEANVALIDATION_FEATURE = "true"; + public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; + public static final String GENERATE_SPRING_BOOT_APPLICATION = "true"; + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; + public static final String IMPL_FOLDER_VALUE = "src/main/java"; @Override @@ -49,7 +55,11 @@ public Map createOptions() { builder.put("title", "Test title"); builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION, JavaOptionsProvider.USE_BEANVALIDATION); + builder.put(JavaCXFServerCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); + builder.put(JavaCXFServerCodegen.GENERATE_SPRING_APPLICATION, GENERATE_SPRING_APPLICATION); + builder.put(JavaCXFServerCodegen.USE_SPRING_ANNOTATION_CONFIG, USE_SPRING_ANNOTATION_CONFIG); + builder.put(JavaCXFServerCodegen.USE_SWAGGER_FEATURE, USE_SWAGGER_FEATURE); builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); @@ -59,6 +69,8 @@ public Map createOptions() { builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); + builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + return builder.build(); } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java new file mode 100644 index 00000000000..769f759d95c --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java @@ -0,0 +1,42 @@ +package io.swagger.codegen.options; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.languages.JavaCXFServerCodegen; + +public class JavaResteasyServerOptionsProvider extends JavaOptionsProvider { + + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; + + public static final String IMPL_FOLDER_VALUE = "src/main/java"; + + @Override + public boolean isServer() { + return true; + } + + @Override + public String getLanguage() { + return "jaxrs-resteasy"; + } + + @Override + public Map createOptions() { + + Map parentOptions = super.createOptions(); + + ImmutableMap.Builder builder = new ImmutableMap.Builder() + .putAll(parentOptions); + + builder.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE); + builder.put("title", "Test title"); + + builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + + return builder.build(); + + } +} From b35a5257a661d48c5f2ab7ac8da51b00e364245e Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 20:56:44 +0100 Subject: [PATCH 07/42] cleanup tabs #4088 --- .../jaxrs/JavaResteasyServerOptionsTest.java | 66 +++++----- .../jaxrs/JaxrsCXFServerOptionsTest.java | 118 ++++++++++-------- 2 files changed, 98 insertions(+), 86 deletions(-) diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java index d86ef21c0bf..8d74b035901 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java @@ -28,36 +28,40 @@ protected CodegenConfig getCodegenConfig() { @Override protected void setExpectations() { - new Expectations(clientCodegen) {{ - clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); - times = 1; - clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); - times = 1; - clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); - times = 1; - clientCodegen.setSerializableModel(Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); - times = 1; - clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); - times = 1; - clientCodegen.setSerializeBigDecimalAsString(true); - times = 1; - - clientCodegen.setGenerateJbossDeploymentDescriptor( - Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); - times = 1; - - }}; + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen.setSortParamsByRequiredFlag( + Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen.setSerializableModel( + Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + } + }; } } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index bf4fb033fd3..1362bb20e5b 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -28,62 +28,70 @@ protected CodegenConfig getCodegenConfig() { @Override protected void setExpectations() { - new Expectations(clientCodegen) {{ - clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); - times = 1; - clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); - times = 1; - clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); - times = 1; - clientCodegen.setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); - times = 1; - clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); - times = 1; - clientCodegen.setSerializeBigDecimalAsString(true); - times = 1; - - clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); - times = 1; - - clientCodegen.setGenerateSpringApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); - times = 1; - clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); - times = 1; - clientCodegen.setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); - times = 1; - clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); - times = 1; - clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); - times = 1; - clientCodegen.setUseBeanValidationFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); - times = 1; - - clientCodegen.setGenerateSpringBootApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); - times = 1; - - clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); - times = 1; + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen + .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen + .setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; - clientCodegen.setUseSpringAnnotationConfig( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); - times = 1; + clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); + times = 1; - clientCodegen.setGenerateJbossDeploymentDescriptor( - Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); - times = 1; - - }}; + clientCodegen.setGenerateSpringApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); + times = 1; + clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); + times = 1; + clientCodegen + .setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); + times = 1; + clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; + clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); + times = 1; + clientCodegen.setUseBeanValidationFeature( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); + times = 1; + + clientCodegen.setGenerateSpringBootApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); + times = 1; + + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + clientCodegen.setUseSpringAnnotationConfig( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + } + }; } } From 33764863151d8bdacea6af4550f6da49f26413a1 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:02:53 +0100 Subject: [PATCH 08/42] improve api formatting #4088 --- .../main/resources/JavaJaxRS/cxf/api.mustache | 80 ++++++++++--------- .../cxf/beanValidationQueryParams.mustache | 1 + .../JavaJaxRS/cxf/queryParams.mustache | 2 +- 3 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index a29be5e3a3e..c1b0ecea7b2 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -1,38 +1,42 @@ -package {{package}}; - -{{#imports}}import {{import}}; -{{/imports}} - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import javax.ws.rs.*; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.MediaType; -import org.apache.cxf.jaxrs.ext.multipart.*; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -{{#useBeanValidation}} -import javax.validation.constraints.*; -{{/useBeanValidation}} - -@Path("/") -@Api(value = "/", description = "{{description}}") -@Consumes(MediaType.APPLICATION_JSON) -@Produces(MediaType.APPLICATION_JSON) -public interface {{classname}} { -{{#operations}} -{{#operation}} - - @{{httpMethod}} - {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} - {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} - {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} - @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); -{{/operation}} -} -{{/operations}} - +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +{{#useBeanValidation}} +import javax.validation.constraints.*; +{{/useBeanValidation}} + +@Path("/") +@Api(value = "/", description = "{{description}}") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface {{classname}} { +{{#operations}} +{{#operation}} + + @{{httpMethod}} + {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} +{{#hasConsumes}} + @Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }) +{{/hasConsumes}} +{{#hasProduces}} +@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) +{{/hasProduces}} + @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); +{{/operation}} +} +{{/operations}} + diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache new file mode 100644 index 00000000000..2725b059983 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -0,0 +1 @@ +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache index 6b16d47e340..ef3bf519c43 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file From 89f2274889b4cd31816139bb4ef433f015d6176f Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:04:53 +0100 Subject: [PATCH 09/42] refine formatting #4088 --- .../resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache index 2725b059983..b2327379e88 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -1 +1 @@ -{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file From 3870586df97a8b87b7b84503df963bb212af6876 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:06:07 +0100 Subject: [PATCH 10/42] refine formatting again #4088 --- .../resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache index b2327379e88..c8635ad6f4a 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -1 +1 @@ -{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file From 012c48f0f391e61e03d872f0eb00661f5642b7a4 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:31:50 +0100 Subject: [PATCH 11/42] add separate CLI-flags for controlling junit test features #4088 --- .../languages/JavaCXFClientCodegen.java | 48 +++++------- .../languages/JavaCXFServerCodegen.java | 32 ++++++-- .../languages/features/CXFFeatures.java | 4 +- .../languages/features/CXFServerFeatures.java | 3 +- .../languages/features/GzipFeatures.java | 2 +- .../languages/features/GzipTestFeatures.java | 9 +++ .../languages/features/JaxbFeatures.java | 7 ++ .../features/LoggingTestFeatures.java | 8 ++ .../resources/JavaJaxRS/cxf/api_test.mustache | 8 +- .../jaxrs/JaxrsCXFClientOptionsTest.java | 74 +++++++++++++++++++ .../jaxrs/JaxrsCXFServerOptionsTest.java | 5 ++ .../options/JavaCXFClientOptionsProvider.java | 47 ++++++++++++ .../options/JavaCXFServerOptionsProvider.java | 6 ++ 13 files changed, 209 insertions(+), 44 deletions(-) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java 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 87664e143d0..d1c9d41ae31 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 @@ -14,11 +14,14 @@ import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.CodegenType; import io.swagger.codegen.SupportingFile; -import io.swagger.codegen.languages.features.CXFFeatures; -import io.swagger.codegen.languages.features.LoggingFeatures; +import io.swagger.codegen.languages.features.BeanValidationFeatures; +import io.swagger.codegen.languages.features.GzipTestFeatures; +import io.swagger.codegen.languages.features.JaxbFeatures; +import io.swagger.codegen.languages.features.LoggingTestFeatures; import io.swagger.models.Operation; -public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeatures +public class JavaCXFClientCodegen extends AbstractJavaCodegen + implements BeanValidationFeatures, JaxbFeatures, GzipTestFeatures, LoggingTestFeatures { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFClientCodegen.class); @@ -32,12 +35,9 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeat protected boolean useBeanValidation = false; - protected boolean useGzipFeature = false; - - protected boolean useLoggingFeature = false; - - protected boolean useBeanValidationFeature = false; + protected boolean useGzipFeatureForTests = false; + protected boolean useLoggingFeatureForTests = false; public JavaCXFClientCodegen() { @@ -73,9 +73,8 @@ public JavaCXFClientCodegen() cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations")); - cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE, "Use Gzip Feature")); - cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION_FEATURE, "Use BeanValidation Feature")); - cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); + 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")); } @@ -96,14 +95,9 @@ public void processOpts() this.setUseBeanValidation(useBeanValidationProp); } - this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); - this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseGzipFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE_FOR_TESTS)); + this.setUseLoggingFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE_FOR_TESTS)); - boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); - this.setUseBeanValidationFeature(useBeanValidationFeature); - if (useBeanValidationFeature) { - LOGGER.info("make sure your client supports Bean Validation 1.1"); - } supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen @@ -150,22 +144,16 @@ public void setUseBeanValidation(boolean useBeanValidation) { } - public void setUseGzipFeature(boolean useGzipFeature) { - this.useGzipFeature = useGzipFeature; + public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { + this.useJaxbAnnotations = useJaxbAnnotations; } - - public void setUseLoggingFeature(boolean useLoggingFeature) { - this.useLoggingFeature = useLoggingFeature; + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests) { + this.useGzipFeatureForTests = useGzipFeatureForTests; } - - public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { - this.useBeanValidationFeature = useBeanValidationFeature; - } - - public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { - this.useJaxbAnnotations = useJaxbAnnotations; + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests) { + this.useLoggingFeatureForTests = useLoggingFeatureForTests; } } 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 d4dcb103adb..ebfd7eebebf 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 @@ -14,9 +14,13 @@ import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.SupportingFile; import io.swagger.codegen.languages.features.CXFServerFeatures; +import io.swagger.codegen.languages.features.GzipTestFeatures; +import io.swagger.codegen.languages.features.JaxbFeatures; +import io.swagger.codegen.languages.features.LoggingTestFeatures; import io.swagger.models.Operation; -public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen implements CXFServerFeatures +public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen + implements CXFServerFeatures, GzipTestFeatures, LoggingTestFeatures, JaxbFeatures { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFServerCodegen.class); @@ -34,16 +38,20 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean useMultipartFeature = false; - protected boolean useGzipFeature = false; - - protected boolean useLoggingFeature = false; - protected boolean useBeanValidationFeature = false; protected boolean generateSpringBootApplication= false; protected boolean generateJbossDeploymentDescriptor = false; + protected boolean useGzipFeature = false; + + protected boolean useGzipFeatureForTests = false; + + protected boolean useLoggingFeature = false; + + protected boolean useLoggingFeatureForTests = false; + public JavaCXFServerCodegen() { super(); @@ -79,9 +87,13 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use Swagger Feature")); cliOptions.add(CliOption.newBoolean(USE_WADL_FEATURE, "Use WADL Feature")); cliOptions.add(CliOption.newBoolean(USE_MULTIPART_FEATURE, "Use Multipart Feature")); + cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE, "Use Gzip Feature")); + cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE_FOR_TESTS, "Use Gzip Feature for tests")); + cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION_FEATURE, "Use BeanValidation Feature")); cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); + cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE_FOR_TESTS, "Use Logging Feature for tests")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_BOOT_APPLICATION, "Generate Spring Boot application")); cliOptions.add( @@ -113,7 +125,9 @@ public void processOpts() this.setUseWadlFeature(convertPropertyToBooleanAndWriteBack(USE_WADL_FEATURE)); this.setUseMultipartFeature(convertPropertyToBooleanAndWriteBack(USE_MULTIPART_FEATURE)); this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); + this.setUseGzipFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE_FOR_TESTS)); this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseLoggingFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE_FOR_TESTS)); this.setUseSpringAnnotationConfig(convertPropertyToBooleanAndWriteBack(USE_SPRING_ANNOTATION_CONFIG)); boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); @@ -244,4 +258,12 @@ public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeployment this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; } + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests) { + this.useGzipFeatureForTests = useGzipFeatureForTests; + } + + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests) { + this.useLoggingFeatureForTests = useLoggingFeatureForTests; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java index 6fcceb66e8b..638f0ebf5c8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java @@ -4,10 +4,8 @@ * Features supported by CXF 3 (client + server) * */ -public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures, BeanValidationExtendedFeatures { +public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures { - public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; - public void setUseJaxbAnnotations(boolean useJaxbAnnotations); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index 8b20914fa6d..1c897ebba1f 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -4,7 +4,8 @@ * Features supported by CXF 3 server * */ -public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature +public interface CXFServerFeatures + extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures { public static final String USE_WADL_FEATURE = "useWadlFeature"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java index b117708232c..4cb9955187e 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java @@ -3,7 +3,7 @@ public interface GzipFeatures { public static final String USE_GZIP_FEATURE = "useGzipFeature"; - + public void setUseGzipFeature(boolean useGzipFeature); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java new file mode 100644 index 00000000000..871179ae991 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java @@ -0,0 +1,9 @@ +package io.swagger.codegen.languages.features; + +public interface GzipTestFeatures { + + public static final String USE_GZIP_FEATURE_FOR_TESTS = "useGzipFeatureForTests"; + + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests); + +} diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java new file mode 100644 index 00000000000..9693d6dcd07 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java @@ -0,0 +1,7 @@ +package io.swagger.codegen.languages.features; + +public interface JaxbFeatures { + public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations); +} diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java new file mode 100644 index 00000000000..8a210f8a87c --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java @@ -0,0 +1,8 @@ +package io.swagger.codegen.languages.features; + +public interface LoggingTestFeatures { + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "useLoggingFeatureForTests"; + + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests); + +} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache index 43e9222d45e..63badecee20 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache @@ -73,7 +73,7 @@ public class {{classname}}Test { org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); ClientConfiguration config = WebClient.getConfig(client); -{{#useGzipFeature}} +{{#useGzipFeatureForTests}} // Example for using Gzipping GZIPOutInterceptor gzipOutInterceptor = new GZIPOutInterceptor(); // use Gzipping for first request sent to server @@ -81,11 +81,11 @@ public class {{classname}}Test { config.getOutInterceptors().add(gzipOutInterceptor); config.getInInterceptors().add(new GZIPInInterceptor()); -{{/useGzipFeature}} -{{#useLoggingFeature}} +{{/useGzipFeatureForTests}} +{{#useLoggingFeatureForTests}} LoggingOutInterceptor loggingOutInterceptor = new LoggingOutInterceptor(); config.getOutInterceptors().add(loggingOutInterceptor); -{{/useLoggingFeature}} +{{/useLoggingFeatureForTests}} } {{#operations}}{{#operation}} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java new file mode 100644 index 00000000000..6f6ed93084f --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java @@ -0,0 +1,74 @@ +package io.swagger.codegen.jaxrs; + +import io.swagger.codegen.AbstractOptionsTest; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.languages.JavaCXFClientCodegen; +import io.swagger.codegen.options.JavaCXFClientOptionsProvider; +import io.swagger.codegen.options.OptionsProvider; +import mockit.Expectations; +import mockit.Tested; + +public class JaxrsCXFClientOptionsTest extends AbstractOptionsTest { + + @Tested + private JavaCXFClientCodegen clientCodegen; + + public JaxrsCXFClientOptionsTest() { + super(new JavaCXFClientOptionsProvider()); + } + + protected JaxrsCXFClientOptionsTest(OptionsProvider optionsProvider) { + super(optionsProvider); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @Override + protected void setExpectations() { + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaCXFClientOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaCXFClientOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen + .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFClientOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaCXFClientOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaCXFClientOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaCXFClientOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaCXFClientOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaCXFClientOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaCXFClientOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen + .setSerializableModel(Boolean.valueOf(JavaCXFClientOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFClientOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFClientOptionsProvider.USE_BEANVALIDATION)); + times = 1; + clientCodegen.setUseLoggingFeatureForTests( + Boolean.valueOf(JavaCXFClientOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); + times = 1; + + + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFClientOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + + } + }; + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index 1362bb20e5b..b99e8438027 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -70,8 +70,13 @@ protected void setExpectations() { times = 1; clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); times = 1; + clientCodegen.setUseGzipFeatureForTests(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); times = 1; + clientCodegen.setUseLoggingFeatureForTests( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); + times = 1; clientCodegen.setUseBeanValidationFeature( Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); times = 1; diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java new file mode 100644 index 00000000000..afafd6ecf2f --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java @@ -0,0 +1,47 @@ +package io.swagger.codegen.options; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import io.swagger.codegen.languages.JavaCXFClientCodegen; + +public class JavaCXFClientOptionsProvider extends JavaOptionsProvider { + + public static final String USE_BEANVALIDATION = "true"; + + public static final String USE_JAXB_ANNOTATIONS = "true"; + + public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; + + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; + + + @Override + public boolean isServer() { + return false; + } + + @Override + public String getLanguage() { + return "jaxrs-cxf-client"; + } + + @Override + public Map createOptions() { + + Map parentOptions = super.createOptions(); + + ImmutableMap.Builder builder = new ImmutableMap.Builder() + .putAll(parentOptions); + + builder.put(JavaCXFClientCodegen.USE_BEANVALIDATION, JavaCXFClientOptionsProvider.USE_BEANVALIDATION); + builder.put(JavaCXFClientCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); + + builder.put(JavaCXFClientCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); + builder.put(JavaCXFClientCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); + + return builder.build(); + + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java index 7c7a0ad69b1..8e2cbe6aa35 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java @@ -21,8 +21,12 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { public static final String USE_GZIP_FEATURE = "true"; + public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; + public static final String USE_LOGGING_FEATURE = "true"; + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; + public static final String USE_BEANVALIDATION_FEATURE = "true"; public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; @@ -64,7 +68,9 @@ public Map createOptions() { builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE, USE_GZIP_FEATURE); + builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE, USE_LOGGING_FEATURE); + builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION_FEATURE, USE_BEANVALIDATION_FEATURE); builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); From 469a9d9b9b1df49af826ac94ae7ce32d8f842afe Mon Sep 17 00:00:00 2001 From: jfiala Date: Thu, 3 Nov 2016 19:24:43 +0100 Subject: [PATCH 12/42] add json annotations --- .../main/resources/JavaJaxRS/cxf/api.mustache | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index f1efbe87c63..a29be5e3a3e 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -1,36 +1,38 @@ -package {{package}}; - -{{#imports}}import {{import}}; -{{/imports}} - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import javax.ws.rs.*; -import javax.ws.rs.core.Response; - -import org.apache.cxf.jaxrs.ext.multipart.*; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -{{#useBeanValidation}} -import javax.validation.constraints.*; -{{/useBeanValidation}} - -@Path("/") -@Api(value = "/", description = "{{description}}") -public interface {{classname}} { -{{#operations}} -{{#operation}} - - @{{httpMethod}} - {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} - {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} - {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} - @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); -{{/operation}} -} -{{/operations}} - +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +{{#useBeanValidation}} +import javax.validation.constraints.*; +{{/useBeanValidation}} + +@Path("/") +@Api(value = "/", description = "{{description}}") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface {{classname}} { +{{#operations}} +{{#operation}} + + @{{httpMethod}} + {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} + {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} + {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} + @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); +{{/operation}} +} +{{/operations}} + From 1696630e8e0f315b2efd7d22a2d33e3fb64b62be Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 21:25:13 +0100 Subject: [PATCH 13/42] add cli flag to check for jaxb annotations --- .../codegen/languages/JavaCXFClientCodegen.java | 13 +++++++++++++ .../codegen/languages/JavaCXFServerCodegen.java | 16 +++++++++++++++- .../codegen/languages/features/CXFFeatures.java | 4 ++++ .../main/resources/JavaJaxRS/cxf/pojo.mustache | 5 ++++- 4 files changed, 36 insertions(+), 2 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 15bf08191a5..87664e143d0 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 @@ -28,6 +28,8 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeat */ protected static final String JAXRS_TEMPLATE_DIRECTORY_NAME = "JavaJaxRS"; + protected boolean useJaxbAnnotations = true; + protected boolean useBeanValidation = false; protected boolean useGzipFeature = false; @@ -67,6 +69,8 @@ public JavaCXFClientCodegen() embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf"; + 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, "Use Gzip Feature")); @@ -82,6 +86,11 @@ public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(USE_JAXB_ANNOTATIONS)) { + boolean useJaxbAnnotationsProp = convertPropertyToBooleanAndWriteBack(USE_JAXB_ANNOTATIONS); + this.setUseJaxbAnnotations(useJaxbAnnotationsProp); + } + if (additionalProperties.containsKey(USE_BEANVALIDATION)) { boolean useBeanValidationProp = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION); this.setUseBeanValidation(useBeanValidationProp); @@ -155,4 +164,8 @@ public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { this.useBeanValidationFeature = useBeanValidationFeature; } + 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 ced60722790..96a317734b4 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 @@ -20,6 +20,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFServerCodegen.class); + protected boolean useJaxbAnnotations = true; + protected boolean useBeanValidation = false; protected boolean generateSpringApplication = false; @@ -64,6 +66,8 @@ public JavaCXFServerCodegen() embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf"; + 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(GENERATE_SPRING_APPLICATION, "Generate Spring application")); @@ -85,6 +89,11 @@ public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(USE_JAXB_ANNOTATIONS)) { + boolean useJaxbAnnotationsProp = convertPropertyToBooleanAndWriteBack(USE_JAXB_ANNOTATIONS); + this.setUseJaxbAnnotations(useJaxbAnnotationsProp); + } + if (additionalProperties.containsKey(USE_BEANVALIDATION)) { boolean useBeanValidationProp = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION); this.setUseBeanValidation(useBeanValidationProp); @@ -204,7 +213,12 @@ public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { this.useBeanValidationFeature = useBeanValidationFeature; } - public void setGenerateSpringBootApplication(boolean generateSpringBootApplication) { + public void setGenerateSpringBootApplication(boolean generateSpringBootApplication) { this.generateSpringBootApplication = generateSpringBootApplication; } + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { + this.useJaxbAnnotations = useJaxbAnnotations; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java index 64fa569c83f..6fcceb66e8b 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java @@ -6,4 +6,8 @@ */ public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures, BeanValidationExtendedFeatures { + public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations); + } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache index 9f00536089c..b959ce17c15 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pojo.mustache @@ -7,12 +7,14 @@ import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; +{{#useJaxbAnnotations}} @XmlAccessorType(XmlAccessType.FIELD) {{#hasVars}} @XmlType(name = "{{classname}}", propOrder = { {{#vars}}"{{name}}"{{^-last}}, {{/-last}}{{/vars}} }){{/hasVars}} {{^hasVars}}@XmlType(name = "{{classname}}"){{/hasVars}} {{^parent}}@XmlRootElement(name="{{classname}}"){{/parent}} +{{/useJaxbAnnotations}} {{#description}} @ApiModel(description="{{{description}}}") {{/description}} @@ -22,8 +24,9 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { {{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/items}}{{/items.isEnum}} - +{{#useJaxbAnnotations}} @XmlElement(name="{{baseName}}") +{{/useJaxbAnnotations}} @ApiModelProperty({{#example}}example = "{{example}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}") private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} From 4a5eb8ec20b08d1533cc5d2f235e678198ba681e Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 21:53:26 +0100 Subject: [PATCH 14/42] add CLI-flag for switching Spring-XML or annotation config #4088 --- .../swagger/codegen/languages/JavaCXFServerCodegen.java | 7 +++++++ .../codegen/languages/features/SpringFeatures.java | 4 ++++ .../main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache | 6 ++++++ .../JavaJaxRS/cxf/server/ApplicationContext.xml.mustache | 8 ++++++-- 4 files changed, 23 insertions(+), 2 deletions(-) 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 96a317734b4..9673b286a6c 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 @@ -26,6 +26,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean generateSpringApplication = false; + protected boolean useSpringAnnotationConfig = false; + protected boolean useSwaggerFeature = false; protected boolean useWadlFeature = false; @@ -70,6 +72,7 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_APPLICATION, "Generate Spring application")); + cliOptions.add(CliOption.newBoolean(USE_SPRING_ANNOTATION_CONFIG, "Use Spring Annotation Config")); cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use Swagger Feature")); cliOptions.add(CliOption.newBoolean(USE_WADL_FEATURE, "Use WADL Feature")); @@ -107,6 +110,7 @@ public void processOpts() this.setUseMultipartFeature(convertPropertyToBooleanAndWriteBack(USE_MULTIPART_FEATURE)); this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseSpringAnnotationConfig(convertPropertyToBooleanAndWriteBack(USE_SPRING_ANNOTATION_CONFIG)); boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); this.setUseBeanValidationFeature(useBeanValidationFeature); @@ -183,6 +187,9 @@ public void setGenerateSpringApplication(boolean generateSpringApplication) { this.generateSpringApplication = generateSpringApplication; } + public void setUseSpringAnnotationConfig(boolean useSpringAnnotationConfig) { + this.useSpringAnnotationConfig = useSpringAnnotationConfig; + } public void setUseSwaggerFeature(boolean useSwaggerFeature) { this.useSwaggerFeature = useSwaggerFeature; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java index e7cb6c18228..0a3fad4202a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SpringFeatures.java @@ -6,9 +6,13 @@ public interface SpringFeatures extends BeanValidationFeatures { public static final String GENERATE_SPRING_BOOT_APPLICATION = "generateSpringBootApplication"; + public static final String USE_SPRING_ANNOTATION_CONFIG = "useSpringAnnotationConfig"; + public void setGenerateSpringApplication(boolean useGenerateSpringApplication); public void setGenerateSpringBootApplication(boolean generateSpringBootApplication); + public void setUseSpringAnnotationConfig(boolean useSpringAnnotationConfig); + } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache index c0199a9b5ca..d7d9537c85c 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache @@ -16,7 +16,13 @@ import org.apache.cxf.jaxrs.model.wadl.DocTarget; import org.apache.cxf.jaxrs.ext.multipart.*; import io.swagger.annotations.Api; +{{#useSpringAnnotationConfig}} +import org.springframework.stereotype.Service; +{{/useSpringAnnotationConfig}} +{{#useSpringAnnotationConfig}} +@Service("{{classname}}") +{{/useSpringAnnotationConfig}} {{#description}} {{/description}} public class {{classname}}ServiceImpl implements {{classname}} { diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache index 2cb4720da8c..9d5d53d5619 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache @@ -11,8 +11,6 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd"> - - @@ -23,11 +21,17 @@ {{/useMultipartFeature}} +{{#useSpringAnnotationConfig}} + + +{{/useSpringAnnotationConfig}} +{{#^useSpringAnnotationConfig}} {{#apiInfo}} {{#apis}} {{/apis}} {{/apiInfo}} +{{/^useSpringAnnotationConfig}} {{#useSwaggerFeature}} From b1e762e9fe602c91c982fcfb029f74df57d94fbd Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 22:05:12 +0100 Subject: [PATCH 15/42] add cli flag for generating jboss depl. descriptor #4088 --- .../languages/JavaCXFServerCodegen.java | 22 ++++++++++++++++--- .../languages/features/CXFServerFeatures.java | 3 ++- .../languages/features/JbossFeature.java | 9 ++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java 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 9673b286a6c..d4dcb103adb 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 @@ -42,6 +42,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean generateSpringBootApplication= false; + protected boolean generateJbossDeploymentDescriptor = false; + public JavaCXFServerCodegen() { super(); @@ -82,6 +84,8 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_BOOT_APPLICATION, "Generate Spring Boot application")); + cliOptions.add( + CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor")); } @@ -120,8 +124,13 @@ public void processOpts() this.setGenerateSpringBootApplication(convertPropertyToBooleanAndWriteBack(GENERATE_SPRING_BOOT_APPLICATION)); } - + if (additionalProperties.containsKey(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)) { + boolean generateJbossDeploymentDescriptorProp = convertPropertyToBooleanAndWriteBack( + GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + this.setGenerateJbossDeploymentDescriptor(generateJbossDeploymentDescriptorProp); + } + supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen writeOptional(outputFolder, new SupportingFile("server/pom.mustache", "", "pom.xml")); @@ -137,8 +146,11 @@ public void processOpts() ("src/main/webapp/WEB-INF"), "context.xml")); // Jboss - writeOptional(outputFolder, new SupportingFile("server/jboss-web.xml.mustache", - ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + if (generateJbossDeploymentDescriptor) { + writeOptional(outputFolder, new SupportingFile("server/jboss-web.xml.mustache", + ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + + } // Spring Boot if (this.generateSpringBootApplication) { @@ -228,4 +240,8 @@ public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { this.useJaxbAnnotations = useJaxbAnnotations; } + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor) { + this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index 5c12aaedef6..8b20914fa6d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -4,7 +4,8 @@ * Features supported by CXF 3 server * */ -public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures { +public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature +{ public static final String USE_WADL_FEATURE = "useWadlFeature"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java new file mode 100644 index 00000000000..9cbbd34be81 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JbossFeature.java @@ -0,0 +1,9 @@ +package io.swagger.codegen.languages.features; + +public interface JbossFeature { + + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "generateJbossDeploymentDescriptor"; + + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor); + +} From 733c8879f48508a8b7e2205f7b183f609794380d Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 22:08:29 +0100 Subject: [PATCH 16/42] add JbossFeature CLI flag to Resteasy #4088 --- .../languages/JavaResteasyServerCodegen.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java index d2a462c1e2d..c1bd8a23cd5 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaResteasyServerCodegen.java @@ -1,6 +1,7 @@ package io.swagger.codegen.languages; import io.swagger.codegen.*; +import io.swagger.codegen.languages.features.JbossFeature; import io.swagger.models.Operation; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -8,7 +9,9 @@ import java.io.File; import java.util.*; -public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen { +public class JavaResteasyServerCodegen extends AbstractJavaJAXRSServerCodegen implements JbossFeature { + + protected boolean generateJbossDeploymentDescriptor = true; public JavaResteasyServerCodegen() { @@ -31,6 +34,9 @@ public JavaResteasyServerCodegen() { dateLibrary = "legacy";// TODO: change to joda embeddedTemplateDir = templateDir = "JavaJaxRS" + File.separator + "resteasy"; + + cliOptions.add( + CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor")); } @Override @@ -47,6 +53,12 @@ public String getHelp() { public void processOpts() { super.processOpts(); + if (additionalProperties.containsKey(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)) { + boolean generateJbossDeploymentDescriptorProp = convertPropertyToBooleanAndWriteBack( + GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + this.setGenerateJbossDeploymentDescriptor(generateJbossDeploymentDescriptorProp); + } + writeOptional(outputFolder, new SupportingFile("pom.mustache", "", "pom.xml")); writeOptional(outputFolder, new SupportingFile("gradle.mustache", "", "build.gradle")); writeOptional(outputFolder, new SupportingFile("settingsGradle.mustache", "", "settings.gradle")); @@ -61,8 +73,12 @@ public void processOpts() { (sourceFolder + '/' + apiPackage).replace(".", "/"), "NotFoundException.java")); writeOptional(outputFolder, new SupportingFile("web.mustache", ("src/main/webapp/WEB-INF"), "web.xml")); - writeOptional(outputFolder, new SupportingFile("jboss-web.mustache", + + if (generateJbossDeploymentDescriptor) { + writeOptional(outputFolder, new SupportingFile("jboss-web.mustache", ("src/main/webapp/WEB-INF"), "jboss-web.xml")); + } + writeOptional(outputFolder, new SupportingFile("RestApplication.mustache", (sourceFolder + '/' + invokerPackage).replace(".", "/"), "RestApplication.java")); supportingFiles.add(new SupportingFile("StringUtil.mustache", @@ -198,4 +214,8 @@ public Map postProcessModelsEnum(Map objs) { return objs; } + + public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeploymentDescriptor) { + this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; + } } From 9691509738e833712f0108f74058b7e84bd34cfd Mon Sep 17 00:00:00 2001 From: jfiala Date: Sun, 6 Nov 2016 23:02:48 +0100 Subject: [PATCH 17/42] update/add tests #4088 --- .../jaxrs/JavaResteasyServerOptionsTest.java | 63 +++++++++++++++++++ .../jaxrs/JaxrsCXFServerOptionsTest.java | 11 +++- .../options/JavaCXFServerOptionsProvider.java | 12 ++++ .../JavaResteasyServerOptionsProvider.java | 42 +++++++++++++ 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java new file mode 100644 index 00000000000..d86ef21c0bf --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java @@ -0,0 +1,63 @@ +package io.swagger.codegen.jaxrs; + +import io.swagger.codegen.AbstractOptionsTest; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.languages.JavaResteasyServerCodegen; +import io.swagger.codegen.options.JavaResteasyServerOptionsProvider; +import io.swagger.codegen.options.OptionsProvider; +import mockit.Expectations; +import mockit.Tested; + +public class JavaResteasyServerOptionsTest extends AbstractOptionsTest { + + @Tested + private JavaResteasyServerCodegen clientCodegen; + + public JavaResteasyServerOptionsTest() { + super(new JavaResteasyServerOptionsProvider()); + } + + protected JavaResteasyServerOptionsTest(OptionsProvider optionsProvider) { + super(optionsProvider); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @Override + protected void setExpectations() { + new Expectations(clientCodegen) {{ + clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen.setSerializableModel(Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + }}; + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index 99a88680a9e..bf4fb033fd3 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -73,7 +73,16 @@ protected void setExpectations() { clientCodegen.setGenerateSpringBootApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); times = 1; - + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + clientCodegen.setUseSpringAnnotationConfig( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; }}; } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java index 97626bf87af..7c7a0ad69b1 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java @@ -9,6 +9,8 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { + public static final String USE_JAXB_ANNOTATIONS = "true"; + public static final String GENERATE_SPRING_APPLICATION = "true"; public static final String USE_SWAGGER_FEATURE = "true"; @@ -23,8 +25,12 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { public static final String USE_BEANVALIDATION_FEATURE = "true"; + public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; + public static final String GENERATE_SPRING_BOOT_APPLICATION = "true"; + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; + public static final String IMPL_FOLDER_VALUE = "src/main/java"; @Override @@ -49,7 +55,11 @@ public Map createOptions() { builder.put("title", "Test title"); builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION, JavaOptionsProvider.USE_BEANVALIDATION); + builder.put(JavaCXFServerCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); + builder.put(JavaCXFServerCodegen.GENERATE_SPRING_APPLICATION, GENERATE_SPRING_APPLICATION); + builder.put(JavaCXFServerCodegen.USE_SPRING_ANNOTATION_CONFIG, USE_SPRING_ANNOTATION_CONFIG); + builder.put(JavaCXFServerCodegen.USE_SWAGGER_FEATURE, USE_SWAGGER_FEATURE); builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); @@ -59,6 +69,8 @@ public Map createOptions() { builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); + builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + return builder.build(); } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java new file mode 100644 index 00000000000..769f759d95c --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaResteasyServerOptionsProvider.java @@ -0,0 +1,42 @@ +package io.swagger.codegen.options; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.languages.JavaCXFServerCodegen; + +public class JavaResteasyServerOptionsProvider extends JavaOptionsProvider { + + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; + + public static final String IMPL_FOLDER_VALUE = "src/main/java"; + + @Override + public boolean isServer() { + return true; + } + + @Override + public String getLanguage() { + return "jaxrs-resteasy"; + } + + @Override + public Map createOptions() { + + Map parentOptions = super.createOptions(); + + ImmutableMap.Builder builder = new ImmutableMap.Builder() + .putAll(parentOptions); + + builder.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE); + builder.put("title", "Test title"); + + builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + + return builder.build(); + + } +} From 442204553f78d44b6c84ed39dd6b235e6a8dc614 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 20:56:44 +0100 Subject: [PATCH 18/42] cleanup tabs #4088 --- .../jaxrs/JavaResteasyServerOptionsTest.java | 66 +++++----- .../jaxrs/JaxrsCXFServerOptionsTest.java | 118 ++++++++++-------- 2 files changed, 98 insertions(+), 86 deletions(-) diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java index d86ef21c0bf..8d74b035901 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JavaResteasyServerOptionsTest.java @@ -28,36 +28,40 @@ protected CodegenConfig getCodegenConfig() { @Override protected void setExpectations() { - new Expectations(clientCodegen) {{ - clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); - times = 1; - clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); - times = 1; - clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); - times = 1; - clientCodegen.setSerializableModel(Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); - times = 1; - clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); - times = 1; - clientCodegen.setSerializeBigDecimalAsString(true); - times = 1; - - clientCodegen.setGenerateJbossDeploymentDescriptor( - Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); - times = 1; - - }}; + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaResteasyServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaResteasyServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen.setSortParamsByRequiredFlag( + Boolean.valueOf(JavaResteasyServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaResteasyServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaResteasyServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaResteasyServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaResteasyServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaResteasyServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaResteasyServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen.setSerializableModel( + Boolean.valueOf(JavaResteasyServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaResteasyServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaResteasyServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + } + }; } } diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index bf4fb033fd3..1362bb20e5b 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -28,62 +28,70 @@ protected CodegenConfig getCodegenConfig() { @Override protected void setExpectations() { - new Expectations(clientCodegen) {{ - clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); - times = 1; - clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); - times = 1; - clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); - times = 1; - clientCodegen.setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); - times = 1; - clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); - times = 1; - clientCodegen.setSerializeBigDecimalAsString(true); - times = 1; - - clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); - times = 1; - - clientCodegen.setGenerateSpringApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); - times = 1; - clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); - times = 1; - clientCodegen.setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); - times = 1; - clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); - times = 1; - clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); - times = 1; - clientCodegen.setUseBeanValidationFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); - times = 1; - - clientCodegen.setGenerateSpringBootApplication(Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); - times = 1; - - clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); - times = 1; + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen + .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen + .setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; - clientCodegen.setUseSpringAnnotationConfig( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); - times = 1; + clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); + times = 1; - clientCodegen.setGenerateJbossDeploymentDescriptor( - Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); - times = 1; - - }}; + clientCodegen.setGenerateSpringApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); + times = 1; + clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); + times = 1; + clientCodegen + .setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); + times = 1; + clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; + clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); + times = 1; + clientCodegen.setUseBeanValidationFeature( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); + times = 1; + + clientCodegen.setGenerateSpringBootApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); + times = 1; + + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + clientCodegen.setUseSpringAnnotationConfig( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + } + }; } } From becd52e36868bc4a50601d1cba531f4b8c120cbe Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:02:53 +0100 Subject: [PATCH 19/42] improve api formatting #4088 --- .../main/resources/JavaJaxRS/cxf/api.mustache | 80 ++++++++++--------- .../cxf/beanValidationQueryParams.mustache | 1 + .../JavaJaxRS/cxf/queryParams.mustache | 2 +- 3 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index a29be5e3a3e..c1b0ecea7b2 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -1,38 +1,42 @@ -package {{package}}; - -{{#imports}}import {{import}}; -{{/imports}} - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import javax.ws.rs.*; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.MediaType; -import org.apache.cxf.jaxrs.ext.multipart.*; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -{{#useBeanValidation}} -import javax.validation.constraints.*; -{{/useBeanValidation}} - -@Path("/") -@Api(value = "/", description = "{{description}}") -@Consumes(MediaType.APPLICATION_JSON) -@Produces(MediaType.APPLICATION_JSON) -public interface {{classname}} { -{{#operations}} -{{#operation}} - - @{{httpMethod}} - {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} - {{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} - {{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} - @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); -{{/operation}} -} -{{/operations}} - +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +{{#useBeanValidation}} +import javax.validation.constraints.*; +{{/useBeanValidation}} + +@Path("/") +@Api(value = "/", description = "{{description}}") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface {{classname}} { +{{#operations}} +{{#operation}} + + @{{httpMethod}} + {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} +{{#hasConsumes}} + @Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }) +{{/hasConsumes}} +{{#hasProduces}} +@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) +{{/hasProduces}} + @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); +{{/operation}} +} +{{/operations}} + diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache new file mode 100644 index 00000000000..2725b059983 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -0,0 +1 @@ +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache index 6b16d47e340..ef3bf519c43 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file From 77901783504465ffb9b448c5b4f2115df3354bd6 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:04:53 +0100 Subject: [PATCH 20/42] refine formatting #4088 --- .../resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache index 2725b059983..b2327379e88 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -1 +1 @@ -{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file From b3b54f1f0d3d3b3573d31eaa06a2c8417e3bcfeb Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:06:07 +0100 Subject: [PATCH 21/42] refine formatting again #4088 --- .../resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache index b2327379e88..c8635ad6f4a 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -1 +1 @@ -{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file From 50efff300019059f5d2bf472ca6f7d8ead6b3e07 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:31:50 +0100 Subject: [PATCH 22/42] add separate CLI-flags for controlling junit test features #4088 --- .../languages/JavaCXFClientCodegen.java | 48 +++++------- .../languages/JavaCXFServerCodegen.java | 32 ++++++-- .../languages/features/CXFFeatures.java | 4 +- .../languages/features/CXFServerFeatures.java | 3 +- .../languages/features/GzipFeatures.java | 2 +- .../languages/features/GzipTestFeatures.java | 9 +++ .../languages/features/JaxbFeatures.java | 7 ++ .../features/LoggingTestFeatures.java | 8 ++ .../resources/JavaJaxRS/cxf/api_test.mustache | 8 +- .../jaxrs/JaxrsCXFClientOptionsTest.java | 74 +++++++++++++++++++ .../jaxrs/JaxrsCXFServerOptionsTest.java | 5 ++ .../options/JavaCXFClientOptionsProvider.java | 47 ++++++++++++ .../options/JavaCXFServerOptionsProvider.java | 6 ++ 13 files changed, 209 insertions(+), 44 deletions(-) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java create mode 100644 modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java 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 87664e143d0..d1c9d41ae31 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 @@ -14,11 +14,14 @@ import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.CodegenType; import io.swagger.codegen.SupportingFile; -import io.swagger.codegen.languages.features.CXFFeatures; -import io.swagger.codegen.languages.features.LoggingFeatures; +import io.swagger.codegen.languages.features.BeanValidationFeatures; +import io.swagger.codegen.languages.features.GzipTestFeatures; +import io.swagger.codegen.languages.features.JaxbFeatures; +import io.swagger.codegen.languages.features.LoggingTestFeatures; import io.swagger.models.Operation; -public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeatures +public class JavaCXFClientCodegen extends AbstractJavaCodegen + implements BeanValidationFeatures, JaxbFeatures, GzipTestFeatures, LoggingTestFeatures { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFClientCodegen.class); @@ -32,12 +35,9 @@ public class JavaCXFClientCodegen extends AbstractJavaCodegen implements CXFFeat protected boolean useBeanValidation = false; - protected boolean useGzipFeature = false; - - protected boolean useLoggingFeature = false; - - protected boolean useBeanValidationFeature = false; + protected boolean useGzipFeatureForTests = false; + protected boolean useLoggingFeatureForTests = false; public JavaCXFClientCodegen() { @@ -73,9 +73,8 @@ public JavaCXFClientCodegen() cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations")); - cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE, "Use Gzip Feature")); - cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION_FEATURE, "Use BeanValidation Feature")); - cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); + 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")); } @@ -96,14 +95,9 @@ public void processOpts() this.setUseBeanValidation(useBeanValidationProp); } - this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); - this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseGzipFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE_FOR_TESTS)); + this.setUseLoggingFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE_FOR_TESTS)); - boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); - this.setUseBeanValidationFeature(useBeanValidationFeature); - if (useBeanValidationFeature) { - LOGGER.info("make sure your client supports Bean Validation 1.1"); - } supportingFiles.clear(); // Don't need extra files provided by AbstractJAX-RS & Java Codegen @@ -150,22 +144,16 @@ public void setUseBeanValidation(boolean useBeanValidation) { } - public void setUseGzipFeature(boolean useGzipFeature) { - this.useGzipFeature = useGzipFeature; + public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { + this.useJaxbAnnotations = useJaxbAnnotations; } - - public void setUseLoggingFeature(boolean useLoggingFeature) { - this.useLoggingFeature = useLoggingFeature; + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests) { + this.useGzipFeatureForTests = useGzipFeatureForTests; } - - public void setUseBeanValidationFeature(boolean useBeanValidationFeature) { - this.useBeanValidationFeature = useBeanValidationFeature; - } - - public void setUseJaxbAnnotations(boolean useJaxbAnnotations) { - this.useJaxbAnnotations = useJaxbAnnotations; + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests) { + this.useLoggingFeatureForTests = useLoggingFeatureForTests; } } 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 d4dcb103adb..ebfd7eebebf 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 @@ -14,9 +14,13 @@ import io.swagger.codegen.CodegenProperty; import io.swagger.codegen.SupportingFile; import io.swagger.codegen.languages.features.CXFServerFeatures; +import io.swagger.codegen.languages.features.GzipTestFeatures; +import io.swagger.codegen.languages.features.JaxbFeatures; +import io.swagger.codegen.languages.features.LoggingTestFeatures; import io.swagger.models.Operation; -public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen implements CXFServerFeatures +public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen + implements CXFServerFeatures, GzipTestFeatures, LoggingTestFeatures, JaxbFeatures { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFServerCodegen.class); @@ -34,16 +38,20 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen impleme protected boolean useMultipartFeature = false; - protected boolean useGzipFeature = false; - - protected boolean useLoggingFeature = false; - protected boolean useBeanValidationFeature = false; protected boolean generateSpringBootApplication= false; protected boolean generateJbossDeploymentDescriptor = false; + protected boolean useGzipFeature = false; + + protected boolean useGzipFeatureForTests = false; + + protected boolean useLoggingFeature = false; + + protected boolean useLoggingFeatureForTests = false; + public JavaCXFServerCodegen() { super(); @@ -79,9 +87,13 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use Swagger Feature")); cliOptions.add(CliOption.newBoolean(USE_WADL_FEATURE, "Use WADL Feature")); cliOptions.add(CliOption.newBoolean(USE_MULTIPART_FEATURE, "Use Multipart Feature")); + cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE, "Use Gzip Feature")); + cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE_FOR_TESTS, "Use Gzip Feature for tests")); + cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION_FEATURE, "Use BeanValidation Feature")); cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE, "Use Logging Feature")); + cliOptions.add(CliOption.newBoolean(USE_LOGGING_FEATURE_FOR_TESTS, "Use Logging Feature for tests")); cliOptions.add(CliOption.newBoolean(GENERATE_SPRING_BOOT_APPLICATION, "Generate Spring Boot application")); cliOptions.add( @@ -113,7 +125,9 @@ public void processOpts() this.setUseWadlFeature(convertPropertyToBooleanAndWriteBack(USE_WADL_FEATURE)); this.setUseMultipartFeature(convertPropertyToBooleanAndWriteBack(USE_MULTIPART_FEATURE)); this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); + this.setUseGzipFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE_FOR_TESTS)); this.setUseLoggingFeature(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE)); + this.setUseLoggingFeatureForTests(convertPropertyToBooleanAndWriteBack(USE_LOGGING_FEATURE_FOR_TESTS)); this.setUseSpringAnnotationConfig(convertPropertyToBooleanAndWriteBack(USE_SPRING_ANNOTATION_CONFIG)); boolean useBeanValidationFeature = convertPropertyToBooleanAndWriteBack(USE_BEANVALIDATION_FEATURE); @@ -244,4 +258,12 @@ public void setGenerateJbossDeploymentDescriptor(boolean generateJbossDeployment this.generateJbossDeploymentDescriptor = generateJbossDeploymentDescriptor; } + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests) { + this.useGzipFeatureForTests = useGzipFeatureForTests; + } + + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests) { + this.useLoggingFeatureForTests = useLoggingFeatureForTests; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java index 6fcceb66e8b..638f0ebf5c8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFFeatures.java @@ -4,10 +4,8 @@ * Features supported by CXF 3 (client + server) * */ -public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures, BeanValidationExtendedFeatures { +public interface CXFFeatures extends LoggingFeatures, GzipFeatures, BeanValidationFeatures { - public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; - public void setUseJaxbAnnotations(boolean useJaxbAnnotations); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index 8b20914fa6d..1c897ebba1f 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -4,7 +4,8 @@ * Features supported by CXF 3 server * */ -public interface CXFServerFeatures extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature +public interface CXFServerFeatures + extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures { public static final String USE_WADL_FEATURE = "useWadlFeature"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java index b117708232c..4cb9955187e 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipFeatures.java @@ -3,7 +3,7 @@ public interface GzipFeatures { public static final String USE_GZIP_FEATURE = "useGzipFeature"; - + public void setUseGzipFeature(boolean useGzipFeature); } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java new file mode 100644 index 00000000000..871179ae991 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/GzipTestFeatures.java @@ -0,0 +1,9 @@ +package io.swagger.codegen.languages.features; + +public interface GzipTestFeatures { + + public static final String USE_GZIP_FEATURE_FOR_TESTS = "useGzipFeatureForTests"; + + public void setUseGzipFeatureForTests(boolean useGzipFeatureForTests); + +} diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java new file mode 100644 index 00000000000..9693d6dcd07 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/JaxbFeatures.java @@ -0,0 +1,7 @@ +package io.swagger.codegen.languages.features; + +public interface JaxbFeatures { + public static final String USE_JAXB_ANNOTATIONS = "useJaxbAnnotations"; + + public void setUseJaxbAnnotations(boolean useJaxbAnnotations); +} diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java new file mode 100644 index 00000000000..8a210f8a87c --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/LoggingTestFeatures.java @@ -0,0 +1,8 @@ +package io.swagger.codegen.languages.features; + +public interface LoggingTestFeatures { + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "useLoggingFeatureForTests"; + + public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests); + +} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache index 43e9222d45e..63badecee20 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache @@ -73,7 +73,7 @@ public class {{classname}}Test { org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); ClientConfiguration config = WebClient.getConfig(client); -{{#useGzipFeature}} +{{#useGzipFeatureForTests}} // Example for using Gzipping GZIPOutInterceptor gzipOutInterceptor = new GZIPOutInterceptor(); // use Gzipping for first request sent to server @@ -81,11 +81,11 @@ public class {{classname}}Test { config.getOutInterceptors().add(gzipOutInterceptor); config.getInInterceptors().add(new GZIPInInterceptor()); -{{/useGzipFeature}} -{{#useLoggingFeature}} +{{/useGzipFeatureForTests}} +{{#useLoggingFeatureForTests}} LoggingOutInterceptor loggingOutInterceptor = new LoggingOutInterceptor(); config.getOutInterceptors().add(loggingOutInterceptor); -{{/useLoggingFeature}} +{{/useLoggingFeatureForTests}} } {{#operations}}{{#operation}} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java new file mode 100644 index 00000000000..6f6ed93084f --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFClientOptionsTest.java @@ -0,0 +1,74 @@ +package io.swagger.codegen.jaxrs; + +import io.swagger.codegen.AbstractOptionsTest; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.languages.JavaCXFClientCodegen; +import io.swagger.codegen.options.JavaCXFClientOptionsProvider; +import io.swagger.codegen.options.OptionsProvider; +import mockit.Expectations; +import mockit.Tested; + +public class JaxrsCXFClientOptionsTest extends AbstractOptionsTest { + + @Tested + private JavaCXFClientCodegen clientCodegen; + + public JaxrsCXFClientOptionsTest() { + super(new JavaCXFClientOptionsProvider()); + } + + protected JaxrsCXFClientOptionsTest(OptionsProvider optionsProvider) { + super(optionsProvider); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @Override + protected void setExpectations() { + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaCXFClientOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaCXFClientOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen + .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFClientOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaCXFClientOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaCXFClientOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaCXFClientOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaCXFClientOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaCXFClientOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaCXFClientOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen + .setSerializableModel(Boolean.valueOf(JavaCXFClientOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFClientOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFClientOptionsProvider.USE_BEANVALIDATION)); + times = 1; + clientCodegen.setUseLoggingFeatureForTests( + Boolean.valueOf(JavaCXFClientOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); + times = 1; + + + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFClientOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + + } + }; + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index 1362bb20e5b..b99e8438027 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -70,8 +70,13 @@ protected void setExpectations() { times = 1; clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); times = 1; + clientCodegen.setUseGzipFeatureForTests(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); times = 1; + clientCodegen.setUseLoggingFeatureForTests( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); + times = 1; clientCodegen.setUseBeanValidationFeature( Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); times = 1; diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java new file mode 100644 index 00000000000..afafd6ecf2f --- /dev/null +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFClientOptionsProvider.java @@ -0,0 +1,47 @@ +package io.swagger.codegen.options; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import io.swagger.codegen.languages.JavaCXFClientCodegen; + +public class JavaCXFClientOptionsProvider extends JavaOptionsProvider { + + public static final String USE_BEANVALIDATION = "true"; + + public static final String USE_JAXB_ANNOTATIONS = "true"; + + public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; + + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; + + + @Override + public boolean isServer() { + return false; + } + + @Override + public String getLanguage() { + return "jaxrs-cxf-client"; + } + + @Override + public Map createOptions() { + + Map parentOptions = super.createOptions(); + + ImmutableMap.Builder builder = new ImmutableMap.Builder() + .putAll(parentOptions); + + builder.put(JavaCXFClientCodegen.USE_BEANVALIDATION, JavaCXFClientOptionsProvider.USE_BEANVALIDATION); + builder.put(JavaCXFClientCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); + + builder.put(JavaCXFClientCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); + builder.put(JavaCXFClientCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); + + return builder.build(); + + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java index 7c7a0ad69b1..8e2cbe6aa35 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java @@ -21,8 +21,12 @@ public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { public static final String USE_GZIP_FEATURE = "true"; + public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; + public static final String USE_LOGGING_FEATURE = "true"; + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; + public static final String USE_BEANVALIDATION_FEATURE = "true"; public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; @@ -64,7 +68,9 @@ public Map createOptions() { builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE, USE_GZIP_FEATURE); + builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE, USE_LOGGING_FEATURE); + builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION_FEATURE, USE_BEANVALIDATION_FEATURE); builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); From 04fdc10653322a9b0ba3a423792cb3d9e807cb4c Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 21:43:44 +0100 Subject: [PATCH 23/42] add check for void methods + assertNotNull(response) #4088 --- .../src/main/resources/JavaJaxRS/cxf/api_test.mustache | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache index 63badecee20..3ce00a7640c 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache @@ -6,6 +6,7 @@ package {{package}}; {{/imports}} import org.junit.Test; import org.junit.Before; +import static org.junit.Assert.*; import javax.ws.rs.core.Response; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; @@ -102,8 +103,8 @@ public class {{classname}}Test { {{#allParams}} {{{dataType}}} {{paramName}} = null; {{/allParams}} - // {{#returnType}}{{{returnType}}} response = {{/returnType}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); - + {{^vendorExtensions.x-java-is-response-void}}{{{returnType}}} response = {{/vendorExtensions.x-java-is-response-void}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + {{^vendorExtensions.x-java-is-response-void}}assertNotNull(response);{{/vendorExtensions.x-java-is-response-void}} // TODO: test validations } {{/operation}}{{/operations}} From 9c4a1f3fb172d5c426495755f85eb0292a465170 Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:33:15 +0100 Subject: [PATCH 24/42] add spaces for @Produces #4088 --- .../src/main/resources/JavaJaxRS/cxf/api.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index c1b0ecea7b2..da06fb21ec9 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -32,7 +32,7 @@ public interface {{classname}} { @Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }) {{/hasConsumes}} {{#hasProduces}} -@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) + @Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) {{/hasProduces}} @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); From 80beec09bc881856bc4f6c4b4a30616349a98bff Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:37:41 +0100 Subject: [PATCH 25/42] allow build with no web.xml config #4088 --- .../src/main/resources/JavaJaxRS/cxf/server/pom.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache index 6e0165d011f..5bc5ce8f6d9 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/pom.mustache @@ -82,7 +82,7 @@ maven-war-plugin 2.1.1 - true + false From 06b60dc1ce07ce25a63cb88fe2ed10844711f0ae Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:42:50 +0100 Subject: [PATCH 26/42] comment invocations of tests #4088 --- .../src/main/resources/JavaJaxRS/cxf/api_test.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache index 3ce00a7640c..53d4c46e26d 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache @@ -103,8 +103,8 @@ public class {{classname}}Test { {{#allParams}} {{{dataType}}} {{paramName}} = null; {{/allParams}} - {{^vendorExtensions.x-java-is-response-void}}{{{returnType}}} response = {{/vendorExtensions.x-java-is-response-void}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); - {{^vendorExtensions.x-java-is-response-void}}assertNotNull(response);{{/vendorExtensions.x-java-is-response-void}} + //{{^vendorExtensions.x-java-is-response-void}}{{{returnType}}} response = {{/vendorExtensions.x-java-is-response-void}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); + //{{^vendorExtensions.x-java-is-response-void}}assertNotNull(response);{{/vendorExtensions.x-java-is-response-void}} // TODO: test validations } {{/operation}}{{/operations}} From 1142007a2f346637c50d91fae3a4d27dc47be9ce Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:43:40 +0100 Subject: [PATCH 27/42] update petstore sample jaxrs-cxf server with gen/java first #4088 --- .../gen/java/io/swagger/api/PetApi.java | 48 ++-- .../gen/java/io/swagger/api/StoreApi.java | 30 ++- .../gen/java/io/swagger/api/UserApi.java | 50 +++-- .../gen/java/io/swagger/model/Category.java | 28 +-- .../io/swagger/model/ModelApiResponse.java | 38 ++-- .../gen/java/io/swagger/model/Order.java | 67 +++--- .../gen/java/io/swagger/model/Pet.java | 67 +++--- .../gen/java/io/swagger/model/Tag.java | 28 +-- .../gen/java/io/swagger/model/User.java | 87 ++++---- samples/server/petstore/jaxrs-cxf/pom.xml | 4 +- .../swagger/api/impl/PetApiServiceImpl.java | 72 ++++++ .../swagger/api/impl/StoreApiServiceImpl.java | 46 ++++ .../swagger/api/impl/UserApiServiceImpl.java | 70 ++++++ .../test/java/io/swagger/api/PetApiTest.java | 205 ++++++++++++++++++ .../java/io/swagger/api/StoreApiTest.java | 134 ++++++++++++ .../test/java/io/swagger/api/UserApiTest.java | 200 +++++++++++++++++ 16 files changed, 958 insertions(+), 216 deletions(-) create mode 100644 samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java create mode 100644 samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java create mode 100644 samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java create mode 100644 samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java create mode 100644 samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java create mode 100644 samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java index 9e459c248dd..659f0452f26 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java @@ -1,8 +1,8 @@ package io.swagger.api; import io.swagger.model.Pet; -import java.io.File; import io.swagger.model.ModelApiResponse; +import java.io.File; import java.io.InputStream; import java.io.OutputStream; @@ -10,51 +10,69 @@ import java.util.Map; import javax.ws.rs.*; import javax.ws.rs.core.Response; - +import javax.ws.rs.core.MediaType; import org.apache.cxf.jaxrs.ext.multipart.*; -@Path("/v2") +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) public interface PetApi { + @POST @Path("/pet") @Consumes({ "application/json", "application/xml" }) @Produces({ "application/xml", "application/json" }) - Response addPet(Pet body); + @ApiOperation(value = "Add a new pet to the store", tags={ "pet", }) + public void addPet(Pet body); + @DELETE @Path("/pet/{petId}") - @Produces({ "application/xml", "application/json" }) - Response deletePet(@PathParam("petId") Long petId,@HeaderParam("api_key") String apiKey); + @ApiOperation(value = "Deletes a pet", tags={ "pet", }) + public void deletePet(@PathParam("petId") Long petId, @HeaderParam("api_key") String apiKey); + @GET @Path("/pet/findByStatus") - @Produces({ "application/xml", "application/json" }) - Response findPetsByStatus(@QueryParam("status") List status); + @ApiOperation(value = "Finds Pets by status", tags={ "pet", }) + public Pet findPetsByStatus(@QueryParam("status")List status); + @GET @Path("/pet/findByTags") - @Produces({ "application/xml", "application/json" }) - Response findPetsByTags(@QueryParam("tags") List tags); + @ApiOperation(value = "Finds Pets by tags", tags={ "pet", }) + public Pet findPetsByTags(@QueryParam("tags")List tags); + @GET @Path("/pet/{petId}") - @Produces({ "application/xml", "application/json" }) - Response getPetById(@PathParam("petId") Long petId); + @ApiOperation(value = "Find pet by ID", tags={ "pet", }) + public Pet getPetById(@PathParam("petId") Long petId); + @PUT @Path("/pet") @Consumes({ "application/json", "application/xml" }) @Produces({ "application/xml", "application/json" }) - Response updatePet(Pet body); + @ApiOperation(value = "Update an existing pet", tags={ "pet", }) + public void updatePet(Pet body); + @POST @Path("/pet/{petId}") @Consumes({ "application/x-www-form-urlencoded" }) @Produces({ "application/xml", "application/json" }) - Response updatePetWithForm(@PathParam("petId") Long petId,@Multipart(value = "name", required = false) String name,@Multipart(value = "status", required = false) String status); + @ApiOperation(value = "Updates a pet in the store with form data", tags={ "pet", }) + public void updatePetWithForm(@PathParam("petId") Long petId, @Multipart(value = "name", required = false) String name, @Multipart(value = "status", required = false) String status); + @POST @Path("/pet/{petId}/uploadImage") @Consumes({ "multipart/form-data" }) @Produces({ "application/json" }) - Response uploadFile(@PathParam("petId") Long petId,@Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, + @ApiOperation(value = "uploads an image", tags={ "pet" }) + public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, @Multipart(value = "file" , required = false) Attachment fileDetail); } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java index 2bdd151ec3f..87a583b8712 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java @@ -9,30 +9,40 @@ import java.util.Map; import javax.ws.rs.*; import javax.ws.rs.core.Response; - +import javax.ws.rs.core.MediaType; import org.apache.cxf.jaxrs.ext.multipart.*; -@Path("/v2") +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) public interface StoreApi { + @DELETE @Path("/store/order/{orderId}") - @Produces({ "application/xml", "application/json" }) - Response deleteOrder(@PathParam("orderId") String orderId); + @ApiOperation(value = "Delete purchase order by ID", tags={ "store", }) + public void deleteOrder(@PathParam("orderId") String orderId); + @GET @Path("/store/inventory") - @Produces({ "application/json" }) - Response getInventory(); + @ApiOperation(value = "Returns pet inventories by status", tags={ "store", }) + public Integer getInventory(); + @GET @Path("/store/order/{orderId}") - @Produces({ "application/xml", "application/json" }) - Response getOrderById(@PathParam("orderId") Long orderId); + @ApiOperation(value = "Find purchase order by ID", tags={ "store", }) + public Order getOrderById(@PathParam("orderId") Long orderId); + @POST @Path("/store/order") - @Produces({ "application/xml", "application/json" }) - Response placeOrder(Order body); + @ApiOperation(value = "Place an order for a pet", tags={ "store" }) + public Order placeOrder(Order body); } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java index f93523bf947..528af584f46 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java @@ -9,50 +9,64 @@ import java.util.Map; import javax.ws.rs.*; import javax.ws.rs.core.Response; - +import javax.ws.rs.core.MediaType; import org.apache.cxf.jaxrs.ext.multipart.*; -@Path("/v2") +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) public interface UserApi { + @POST @Path("/user") - @Produces({ "application/xml", "application/json" }) - Response createUser(User body); + @ApiOperation(value = "Create user", tags={ "user", }) + public void createUser(User body); + @POST @Path("/user/createWithArray") - @Produces({ "application/xml", "application/json" }) - Response createUsersWithArrayInput(List body); + @ApiOperation(value = "Creates list of users with given input array", tags={ "user", }) + public void createUsersWithArrayInput(List body); + @POST @Path("/user/createWithList") - @Produces({ "application/xml", "application/json" }) - Response createUsersWithListInput(List body); + @ApiOperation(value = "Creates list of users with given input array", tags={ "user", }) + public void createUsersWithListInput(List body); + @DELETE @Path("/user/{username}") - @Produces({ "application/xml", "application/json" }) - Response deleteUser(@PathParam("username") String username); + @ApiOperation(value = "Delete user", tags={ "user", }) + public void deleteUser(@PathParam("username") String username); + @GET @Path("/user/{username}") - @Produces({ "application/xml", "application/json" }) - Response getUserByName(@PathParam("username") String username); + @ApiOperation(value = "Get user by user name", tags={ "user", }) + public User getUserByName(@PathParam("username") String username); + @GET @Path("/user/login") - @Produces({ "application/xml", "application/json" }) - Response loginUser(@QueryParam("username") String username,@QueryParam("password") String password); + @ApiOperation(value = "Logs user into the system", tags={ "user", }) + public String loginUser(@QueryParam("username")String username, @QueryParam("password")String password); + @GET @Path("/user/logout") - @Produces({ "application/xml", "application/json" }) - Response logoutUser(); + @ApiOperation(value = "Logs out current logged in user session", tags={ "user", }) + public void logoutUser(); + @PUT @Path("/user/{username}") - @Produces({ "application/xml", "application/json" }) - Response updateUser(@PathParam("username") String username,User body); + @ApiOperation(value = "Updated user", tags={ "user" }) + public void updateUser(@PathParam("username") String username, User body); } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java index ecd7630f6a7..591a6e22a69 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java @@ -2,6 +2,7 @@ import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -10,33 +11,28 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "Category", propOrder = - { "id", "name" -}) - -@XmlRootElement(name="Category") +@ApiModel(description="A category for a pet") public class Category { - - @XmlElement(name="id") + @ApiModelProperty(example = "null", value = "") private Long id = null; - - @XmlElement(name="name") + @ApiModelProperty(example = "null", value = "") private String name = null; - /** - **/ - + /** + * Get id + * @return id + **/ public Long getId() { return id; } public void setId(Long id) { this.id = id; } - /** - **/ - + /** + * Get name + * @return name + **/ public String getName() { return name; } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java index dc8a57cf13a..f3c6f56cfc4 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java @@ -2,6 +2,7 @@ import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -10,45 +11,40 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "ModelApiResponse", propOrder = - { "code", "type", "message" -}) - -@XmlRootElement(name="ModelApiResponse") +@ApiModel(description="Describes the result of uploading an image resource") public class ModelApiResponse { - - @XmlElement(name="code") + @ApiModelProperty(example = "null", value = "") private Integer code = null; - - @XmlElement(name="type") + @ApiModelProperty(example = "null", value = "") private String type = null; - - @XmlElement(name="message") + @ApiModelProperty(example = "null", value = "") private String message = null; - /** - **/ - + /** + * Get code + * @return code + **/ public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } - /** - **/ - + /** + * Get type + * @return type + **/ public String getType() { return type; } public void setType(String type) { this.type = type; } - /** - **/ - + /** + * Get message + * @return message + **/ public String getMessage() { return message; } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java index ec2140e1b4d..af6f5e0e38e 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java @@ -2,6 +2,7 @@ import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -10,25 +11,16 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "Order", propOrder = - { "id", "petId", "quantity", "shipDate", "status", "complete" -}) - -@XmlRootElement(name="Order") +@ApiModel(description="An order for a pets from the pet store") public class Order { - - @XmlElement(name="id") + @ApiModelProperty(example = "null", value = "") private Long id = null; - - @XmlElement(name="petId") + @ApiModelProperty(example = "null", value = "") private Long petId = null; - - @XmlElement(name="quantity") + @ApiModelProperty(example = "null", value = "") private Integer quantity = null; - - @XmlElement(name="shipDate") + @ApiModelProperty(example = "null", value = "") private javax.xml.datatype.XMLGregorianCalendar shipDate = null; @XmlType(name="StatusEnum") @@ -63,62 +55,65 @@ public static StatusEnum fromValue(String v) { } } - - @XmlElement(name="status") + @ApiModelProperty(example = "null", value = "Order Status") private StatusEnum status = null; - - @XmlElement(name="complete") + @ApiModelProperty(example = "null", value = "") private Boolean complete = false; - /** - **/ - + /** + * Get id + * @return id + **/ public Long getId() { return id; } public void setId(Long id) { this.id = id; } - /** - **/ - + /** + * Get petId + * @return petId + **/ public Long getPetId() { return petId; } public void setPetId(Long petId) { this.petId = petId; } - /** - **/ - + /** + * Get quantity + * @return quantity + **/ public Integer getQuantity() { return quantity; } public void setQuantity(Integer quantity) { this.quantity = quantity; } - /** - **/ - + /** + * Get shipDate + * @return shipDate + **/ public javax.xml.datatype.XMLGregorianCalendar getShipDate() { return shipDate; } public void setShipDate(javax.xml.datatype.XMLGregorianCalendar shipDate) { this.shipDate = shipDate; } - /** + /** * Order Status - **/ - + * @return status + **/ public StatusEnum getStatus() { return status; } public void setStatus(StatusEnum status) { this.status = status; } - /** - **/ - + /** + * Get complete + * @return complete + **/ public Boolean getComplete() { return complete; } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java index 5a636e92c33..0cfc0a30ee0 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -14,28 +15,18 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "Pet", propOrder = - { "id", "category", "name", "photoUrls", "tags", "status" -}) - -@XmlRootElement(name="Pet") +@ApiModel(description="A pet for sale in the pet store") public class Pet { - - @XmlElement(name="id") + @ApiModelProperty(example = "null", value = "") private Long id = null; - - @XmlElement(name="category") + @ApiModelProperty(example = "null", value = "") private Category category = null; - - @XmlElement(name="name") + @ApiModelProperty(example = "doggie", required = true, value = "") private String name = null; - - @XmlElement(name="photoUrls") + @ApiModelProperty(example = "null", required = true, value = "") private List photoUrls = new ArrayList(); - - @XmlElement(name="tags") + @ApiModelProperty(example = "null", value = "") private List tags = new ArrayList(); @XmlType(name="StatusEnum") @@ -70,59 +61,63 @@ public static StatusEnum fromValue(String v) { } } - - @XmlElement(name="status") + @ApiModelProperty(example = "null", value = "pet status in the store") private StatusEnum status = null; - /** - **/ - + /** + * Get id + * @return id + **/ public Long getId() { return id; } public void setId(Long id) { this.id = id; } - /** - **/ - + /** + * Get category + * @return category + **/ public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } - /** - **/ - + /** + * Get name + * @return name + **/ public String getName() { return name; } public void setName(String name) { this.name = name; } - /** - **/ - + /** + * Get photoUrls + * @return photoUrls + **/ public List getPhotoUrls() { return photoUrls; } public void setPhotoUrls(List photoUrls) { this.photoUrls = photoUrls; } - /** - **/ - + /** + * Get tags + * @return tags + **/ public List getTags() { return tags; } public void setTags(List tags) { this.tags = tags; } - /** + /** * pet status in the store - **/ - + * @return status + **/ public StatusEnum getStatus() { return status; } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java index 848da3841f0..4eb99ad2fc1 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java @@ -2,6 +2,7 @@ import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -10,33 +11,28 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "Tag", propOrder = - { "id", "name" -}) - -@XmlRootElement(name="Tag") +@ApiModel(description="A tag for a pet") public class Tag { - - @XmlElement(name="id") + @ApiModelProperty(example = "null", value = "") private Long id = null; - - @XmlElement(name="name") + @ApiModelProperty(example = "null", value = "") private String name = null; - /** - **/ - + /** + * Get id + * @return id + **/ public Long getId() { return id; } public void setId(Long id) { this.id = id; } - /** - **/ - + /** + * Get name + * @return name + **/ public String getName() { return name; } diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java index e08637a5777..005d9aa8c74 100644 --- a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java +++ b/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java @@ -2,6 +2,7 @@ import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessType; @@ -10,106 +11,100 @@ import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlEnumValue; -@XmlAccessorType(XmlAccessType.FIELD) - @XmlType(name = "User", propOrder = - { "id", "username", "firstName", "lastName", "email", "password", "phone", "userStatus" -}) - -@XmlRootElement(name="User") +@ApiModel(description="A User who is purchasing from the pet store") public class User { - - @XmlElement(name="id") + @ApiModelProperty(example = "null", value = "") private Long id = null; - - @XmlElement(name="username") + @ApiModelProperty(example = "null", value = "") private String username = null; - - @XmlElement(name="firstName") + @ApiModelProperty(example = "null", value = "") private String firstName = null; - - @XmlElement(name="lastName") + @ApiModelProperty(example = "null", value = "") private String lastName = null; - - @XmlElement(name="email") + @ApiModelProperty(example = "null", value = "") private String email = null; - - @XmlElement(name="password") + @ApiModelProperty(example = "null", value = "") private String password = null; - - @XmlElement(name="phone") + @ApiModelProperty(example = "null", value = "") private String phone = null; - - @XmlElement(name="userStatus") + @ApiModelProperty(example = "null", value = "User Status") private Integer userStatus = null; - /** - **/ - + /** + * Get id + * @return id + **/ public Long getId() { return id; } public void setId(Long id) { this.id = id; } - /** - **/ - + /** + * Get username + * @return username + **/ public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } - /** - **/ - + /** + * Get firstName + * @return firstName + **/ public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } - /** - **/ - + /** + * Get lastName + * @return lastName + **/ public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } - /** - **/ - + /** + * Get email + * @return email + **/ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } - /** - **/ - + /** + * Get password + * @return password + **/ public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } - /** - **/ - + /** + * Get phone + * @return phone + **/ public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } - /** + /** * User Status - **/ - + * @return userStatus + **/ public Integer getUserStatus() { return userStatus; } diff --git a/samples/server/petstore/jaxrs-cxf/pom.xml b/samples/server/petstore/jaxrs-cxf/pom.xml index 24ae04f9d19..00881111e7c 100644 --- a/samples/server/petstore/jaxrs-cxf/pom.xml +++ b/samples/server/petstore/jaxrs-cxf/pom.xml @@ -70,7 +70,7 @@ - src/gen/java + gen/java @@ -82,7 +82,7 @@ maven-war-plugin 2.1.1 - true + false diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java new file mode 100644 index 00000000000..6dea43331b0 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java @@ -0,0 +1,72 @@ +package io.swagger.api.impl; + +import io.swagger.api.*; +import io.swagger.model.Pet; +import io.swagger.model.ModelApiResponse; +import java.io.File; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; + +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; + +public class PetApiServiceImpl implements PetApi { + public void addPet(Pet body) { + // TODO: Implement... + + + } + + public void deletePet(@PathParam("petId") Long petId, @HeaderParam("api_key") String apiKey) { + // TODO: Implement... + + + } + + public Pet findPetsByStatus(List status) { + // TODO: Implement... + + return null; + } + + public Pet findPetsByTags(List tags) { + // TODO: Implement... + + return null; + } + + public Pet getPetById(@PathParam("petId") Long petId) { + // TODO: Implement... + + return null; + } + + public void updatePet(Pet body) { + // TODO: Implement... + + + } + + public void updatePetWithForm(@PathParam("petId") Long petId, @Multipart(value = "name", required = false) String name, @Multipart(value = "status", required = false) String status) { + // TODO: Implement... + + + } + + public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, + @Multipart(value = "file" , required = false) Attachment fileDetail) { + // TODO: Implement... + + return null; + } + +} + diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java new file mode 100644 index 00000000000..4e36fd37d70 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java @@ -0,0 +1,46 @@ +package io.swagger.api.impl; + +import io.swagger.api.*; +import java.util.Map; +import io.swagger.model.Order; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; + +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; + +public class StoreApiServiceImpl implements StoreApi { + public void deleteOrder(@PathParam("orderId") String orderId) { + // TODO: Implement... + + + } + + public Integer getInventory() { + // TODO: Implement... + + return null; + } + + public Order getOrderById(@PathParam("orderId") Long orderId) { + // TODO: Implement... + + return null; + } + + public Order placeOrder(Order body) { + // TODO: Implement... + + return null; + } + +} + diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java new file mode 100644 index 00000000000..ad39fcffbe8 --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java @@ -0,0 +1,70 @@ +package io.swagger.api.impl; + +import io.swagger.api.*; +import io.swagger.model.User; +import java.util.List; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.model.wadl.Description; +import org.apache.cxf.jaxrs.model.wadl.DocTarget; + +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; + +public class UserApiServiceImpl implements UserApi { + public void createUser(User body) { + // TODO: Implement... + + + } + + public void createUsersWithArrayInput(List body) { + // TODO: Implement... + + + } + + public void createUsersWithListInput(List body) { + // TODO: Implement... + + + } + + public void deleteUser(@PathParam("username") String username) { + // TODO: Implement... + + + } + + public User getUserByName(@PathParam("username") String username) { + // TODO: Implement... + + return null; + } + + public String loginUser(String username, String password) { + // TODO: Implement... + + return null; + } + + public void logoutUser() { + // TODO: Implement... + + + } + + public void updateUser(@PathParam("username") String username, User body) { + // TODO: Implement... + + + } + +} + diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java new file mode 100644 index 00000000000..cb290ef291a --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java @@ -0,0 +1,205 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import io.swagger.model.Pet; +import io.swagger.model.ModelApiResponse; +import java.io.File; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for PetApi + */ +public class PetApiTest { + + + private PetApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", PetApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Add a new pet to the store + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void addPetTest() { + Pet body = null; + //api.addPet(body); + // + // TODO: test validations + } + + /** + * Deletes a pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deletePetTest() { + Long petId = null; + String apiKey = null; + //api.deletePet(petId, apiKey); + // + // TODO: test validations + } + + /** + * Finds Pets by status + * + * Multiple status values can be provided with comma separated strings + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void findPetsByStatusTest() { + List status = null; + //Pet response = api.findPetsByStatus(status); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Finds Pets by tags + * + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void findPetsByTagsTest() { + List tags = null; + //Pet response = api.findPetsByTags(tags); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Find pet by ID + * + * Returns a single pet + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getPetByIdTest() { + Long petId = null; + //Pet response = api.getPetById(petId); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Update an existing pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updatePetTest() { + Pet body = null; + //api.updatePet(body); + // + // TODO: test validations + } + + /** + * Updates a pet in the store with form data + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updatePetWithFormTest() { + Long petId = null; + String name = null; + String status = null; + //api.updatePetWithForm(petId, name, status); + // + // TODO: test validations + } + + /** + * uploads an image + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void uploadFileTest() { + Long petId = null; + String additionalMetadata = null; + File file = null; + //ModelApiResponse response = api.uploadFile(petId, additionalMetadata, file); + //assertNotNull(response); + // TODO: test validations + } + +} diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java new file mode 100644 index 00000000000..50b5f1cc93a --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java @@ -0,0 +1,134 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import java.util.Map; +import io.swagger.model.Order; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for StoreApi + */ +public class StoreApiTest { + + + private StoreApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", StoreApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Delete purchase order by ID + * + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deleteOrderTest() { + String orderId = null; + //api.deleteOrder(orderId); + // + // TODO: test validations + } + + /** + * Returns pet inventories by status + * + * Returns a map of status codes to quantities + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getInventoryTest() { + //Integer response = api.getInventory(); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Find purchase order by ID + * + * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getOrderByIdTest() { + Long orderId = null; + //Order response = api.getOrderById(orderId); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Place an order for a pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void placeOrderTest() { + Order body = null; + //Order response = api.placeOrder(body); + //assertNotNull(response); + // TODO: test validations + } + +} diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java new file mode 100644 index 00000000000..6eca9bda2ec --- /dev/null +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java @@ -0,0 +1,200 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import io.swagger.model.User; +import java.util.List; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for UserApi + */ +public class UserApiTest { + + + private UserApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", UserApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Create user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUserTest() { + User body = null; + //api.createUser(body); + // + // TODO: test validations + } + + /** + * Creates list of users with given input array + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUsersWithArrayInputTest() { + List body = null; + //api.createUsersWithArrayInput(body); + // + // TODO: test validations + } + + /** + * Creates list of users with given input array + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUsersWithListInputTest() { + List body = null; + //api.createUsersWithListInput(body); + // + // TODO: test validations + } + + /** + * Delete user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deleteUserTest() { + String username = null; + //api.deleteUser(username); + // + // TODO: test validations + } + + /** + * Get user by user name + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getUserByNameTest() { + String username = null; + //User response = api.getUserByName(username); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Logs user into the system + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void loginUserTest() { + String username = null; + String password = null; + //String response = api.loginUser(username, password); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Logs out current logged in user session + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void logoutUserTest() { + //api.logoutUser(); + // + // TODO: test validations + } + + /** + * Updated user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updateUserTest() { + String username = null; + User body = null; + //api.updateUser(username, body); + // + // TODO: test validations + } + +} From 4e28bd974fa3aef3da7f37347d0ebe6fe09f507a Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:45:01 +0100 Subject: [PATCH 28/42] re-generate jaxrs-cxf with src/gen/java #4088 --- samples/server/petstore/jaxrs-cxf/pom.xml | 2 +- .../jaxrs-cxf/{ => src}/gen/java/io/swagger/api/PetApi.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/api/StoreApi.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/api/UserApi.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Category.java | 0 .../{ => src}/gen/java/io/swagger/model/ModelApiResponse.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Order.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Pet.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Tag.java | 0 .../jaxrs-cxf/{ => src}/gen/java/io/swagger/model/User.java | 0 10 files changed, 1 insertion(+), 1 deletion(-) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/api/PetApi.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/api/StoreApi.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/api/UserApi.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Category.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/ModelApiResponse.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Order.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Pet.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/Tag.java (100%) rename samples/server/petstore/jaxrs-cxf/{ => src}/gen/java/io/swagger/model/User.java (100%) diff --git a/samples/server/petstore/jaxrs-cxf/pom.xml b/samples/server/petstore/jaxrs-cxf/pom.xml index 00881111e7c..081177a6cd1 100644 --- a/samples/server/petstore/jaxrs-cxf/pom.xml +++ b/samples/server/petstore/jaxrs-cxf/pom.xml @@ -70,7 +70,7 @@ - gen/java + src/gen/java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/PetApi.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/StoreApi.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/api/UserApi.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Category.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/ModelApiResponse.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Order.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Pet.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/Tag.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java diff --git a/samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java similarity index 100% rename from samples/server/petstore/jaxrs-cxf/gen/java/io/swagger/model/User.java rename to samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java From 6497bb289e0d0850ab06b44e8e0df32c14df988b Mon Sep 17 00:00:00 2001 From: jfiala Date: Wed, 9 Nov 2016 22:46:53 +0100 Subject: [PATCH 29/42] add client jaxrs-cxf #4088 --- .../jaxrs-cxf/.swagger-codegen-ignore | 23 ++ samples/client/petstore/jaxrs-cxf/LICENSE | 201 +++++++++++++++++ samples/client/petstore/jaxrs-cxf/pom.xml | 162 ++++++++++++++ .../src/gen/java/io/swagger/api/PetApi.java | 78 +++++++ .../src/gen/java/io/swagger/api/StoreApi.java | 47 ++++ .../src/gen/java/io/swagger/api/UserApi.java | 71 ++++++ .../gen/java/io/swagger/model/Category.java | 65 ++++++ .../io/swagger/model/ModelApiResponse.java | 78 +++++++ .../src/gen/java/io/swagger/model/Order.java | 150 +++++++++++++ .../src/gen/java/io/swagger/model/Pet.java | 154 +++++++++++++ .../src/gen/java/io/swagger/model/Tag.java | 65 ++++++ .../src/gen/java/io/swagger/model/User.java | 143 ++++++++++++ .../test/java/io/swagger/api/PetApiTest.java | 205 ++++++++++++++++++ .../java/io/swagger/api/StoreApiTest.java | 133 ++++++++++++ .../test/java/io/swagger/api/UserApiTest.java | 199 +++++++++++++++++ 15 files changed, 1774 insertions(+) create mode 100644 samples/client/petstore/jaxrs-cxf/.swagger-codegen-ignore create mode 100644 samples/client/petstore/jaxrs-cxf/LICENSE create mode 100644 samples/client/petstore/jaxrs-cxf/pom.xml create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java create mode 100644 samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java diff --git a/samples/client/petstore/jaxrs-cxf/.swagger-codegen-ignore b/samples/client/petstore/jaxrs-cxf/.swagger-codegen-ignore new file mode 100644 index 00000000000..c5fa491b4c5 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/samples/client/petstore/jaxrs-cxf/LICENSE b/samples/client/petstore/jaxrs-cxf/LICENSE new file mode 100644 index 00000000000..8dada3edaf5 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/samples/client/petstore/jaxrs-cxf/pom.xml b/samples/client/petstore/jaxrs-cxf/pom.xml new file mode 100644 index 00000000000..a9bc519ccb8 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/pom.xml @@ -0,0 +1,162 @@ + + 4.0.0 + io.swagger + swagger-jaxrs-client + jar + swagger-jaxrs-client + 1.0.0 + + src/main/java + + + maven-failsafe-plugin + 2.6 + + + + integration-test + verify + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.9.1 + + + add-source + generate-sources + + add-source + + + + src/gen/java + + + + + + + + + + io.swagger + swagger-jaxrs + compile + ${swagger-core-version} + + + ch.qos.logback + logback-classic + ${logback-version} + compile + + + ch.qos.logback + logback-core + ${logback-version} + compile + + + junit + junit + ${junit-version} + test + + + + org.apache.cxf + cxf-rt-rs-client + ${cxf-version} + test + + + + + org.apache.cxf + cxf-rt-frontend-jaxrs + ${cxf-version} + compile + + + org.apache.cxf + cxf-rt-rs-service-description + ${cxf-version} + compile + + + org.apache.cxf + cxf-rt-ws-policy + ${cxf-version} + compile + + + org.apache.cxf + cxf-rt-wsdl + ${cxf-version} + compile + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + 1.7 + ${java.version} + ${java.version} + 1.5.9 + 9.2.9.v20150224 + 2.22.2 + 4.12 + 1.1.7 + 2.5 + 3.1.6 + UTF-8 + + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java new file mode 100644 index 00000000000..4ff1aa826dc --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java @@ -0,0 +1,78 @@ +package io.swagger.api; + +import io.swagger.model.Pet; +import io.swagger.model.ModelApiResponse; +import java.io.File; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface PetApi { + + @POST + @Path("/pet") + @Consumes({ "application/json", "application/xml" }) + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Add a new pet to the store", tags={ }) + public void addPet(Pet body); + + @DELETE + @Path("/pet/{petId}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Deletes a pet", tags={ }) + public void deletePet(@PathParam("petId") Long petId, @HeaderParam("api_key") String apiKey); + + @GET + @Path("/pet/findByStatus") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Finds Pets by status", tags={ }) + public List findPetsByStatus(@QueryParam("status")List status); + + @GET + @Path("/pet/findByTags") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Finds Pets by tags", tags={ }) + public List findPetsByTags(@QueryParam("tags")List tags); + + @GET + @Path("/pet/{petId}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Find pet by ID", tags={ }) + public Pet getPetById(@PathParam("petId") Long petId); + + @PUT + @Path("/pet") + @Consumes({ "application/json", "application/xml" }) + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Update an existing pet", tags={ }) + public void updatePet(Pet body); + + @POST + @Path("/pet/{petId}") + @Consumes({ "application/x-www-form-urlencoded" }) + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Updates a pet in the store with form data", tags={ }) + public void updatePetWithForm(@PathParam("petId") Long petId, @Multipart(value = "name", required = false) String name, @Multipart(value = "status", required = false) String status); + + @POST + @Path("/pet/{petId}/uploadImage") + @Consumes({ "multipart/form-data" }) + @Produces({ "application/json" }) + @ApiOperation(value = "uploads an image", tags={ }) + public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, + @Multipart(value = "file" , required = false) Attachment fileDetail); +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java new file mode 100644 index 00000000000..dca146745e8 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/StoreApi.java @@ -0,0 +1,47 @@ +package io.swagger.api; + +import io.swagger.model.Order; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface StoreApi { + + @DELETE + @Path("/store/order/{orderId}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Delete purchase order by ID", tags={ }) + public void deleteOrder(@PathParam("orderId") String orderId); + + @GET + @Path("/store/inventory") + @Produces({ "application/json" }) + @ApiOperation(value = "Returns pet inventories by status", tags={ }) + public Map getInventory(); + + @GET + @Path("/store/order/{orderId}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Find purchase order by ID", tags={ }) + public Order getOrderById(@PathParam("orderId") Long orderId); + + @POST + @Path("/store/order") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Place an order for a pet", tags={ }) + public Order placeOrder(Order body); +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java new file mode 100644 index 00000000000..e3e77a12361 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/UserApi.java @@ -0,0 +1,71 @@ +package io.swagger.api; + +import io.swagger.model.User; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +@Path("/") +@Api(value = "/", description = "") +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +public interface UserApi { + + @POST + @Path("/user") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Create user", tags={ }) + public void createUser(User body); + + @POST + @Path("/user/createWithArray") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Creates list of users with given input array", tags={ }) + public void createUsersWithArrayInput(List body); + + @POST + @Path("/user/createWithList") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Creates list of users with given input array", tags={ }) + public void createUsersWithListInput(List body); + + @DELETE + @Path("/user/{username}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Delete user", tags={ }) + public void deleteUser(@PathParam("username") String username); + + @GET + @Path("/user/{username}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Get user by user name", tags={ }) + public User getUserByName(@PathParam("username") String username); + + @GET + @Path("/user/login") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Logs user into the system", tags={ }) + public String loginUser(@QueryParam("username")String username, @QueryParam("password")String password); + + @GET + @Path("/user/logout") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Logs out current logged in user session", tags={ }) + public void logoutUser(); + + @PUT + @Path("/user/{username}") + @Produces({ "application/xml", "application/json" }) + @ApiOperation(value = "Updated user", tags={ }) + public void updateUser(@PathParam("username") String username, User body); +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java new file mode 100644 index 00000000000..591a6e22a69 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Category.java @@ -0,0 +1,65 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="A category for a pet") +public class Category { + + @ApiModelProperty(example = "null", value = "") + private Long id = null; + @ApiModelProperty(example = "null", value = "") + private String name = null; + + /** + * Get id + * @return id + **/ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + /** + * Get name + * @return name + **/ + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Category {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java new file mode 100644 index 00000000000..f3c6f56cfc4 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/ModelApiResponse.java @@ -0,0 +1,78 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="Describes the result of uploading an image resource") +public class ModelApiResponse { + + @ApiModelProperty(example = "null", value = "") + private Integer code = null; + @ApiModelProperty(example = "null", value = "") + private String type = null; + @ApiModelProperty(example = "null", value = "") + private String message = null; + + /** + * Get code + * @return code + **/ + public Integer getCode() { + return code; + } + public void setCode(Integer code) { + this.code = code; + } + /** + * Get type + * @return type + **/ + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + /** + * Get message + * @return message + **/ + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ModelApiResponse {\n"); + + sb.append(" code: ").append(toIndentedString(code)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java new file mode 100644 index 00000000000..af6f5e0e38e --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Order.java @@ -0,0 +1,150 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="An order for a pets from the pet store") +public class Order { + + @ApiModelProperty(example = "null", value = "") + private Long id = null; + @ApiModelProperty(example = "null", value = "") + private Long petId = null; + @ApiModelProperty(example = "null", value = "") + private Integer quantity = null; + @ApiModelProperty(example = "null", value = "") + private javax.xml.datatype.XMLGregorianCalendar shipDate = null; + +@XmlType(name="StatusEnum") +@XmlEnum(String.class) +public enum StatusEnum { + + @XmlEnumValue("placed") PLACED(String.valueOf("placed")), @XmlEnumValue("approved") APPROVED(String.valueOf("approved")), @XmlEnumValue("delivered") DELIVERED(String.valueOf("delivered")); + + + private String value; + + StatusEnum (String v) { + value = v; + } + + public String value() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String v) { + for (StatusEnum b : StatusEnum.values()) { + if (String.valueOf(b.value).equals(v)) { + return b; + } + } + return null; + } +} + + @ApiModelProperty(example = "null", value = "Order Status") + private StatusEnum status = null; + @ApiModelProperty(example = "null", value = "") + private Boolean complete = false; + + /** + * Get id + * @return id + **/ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + /** + * Get petId + * @return petId + **/ + public Long getPetId() { + return petId; + } + public void setPetId(Long petId) { + this.petId = petId; + } + /** + * Get quantity + * @return quantity + **/ + public Integer getQuantity() { + return quantity; + } + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + /** + * Get shipDate + * @return shipDate + **/ + public javax.xml.datatype.XMLGregorianCalendar getShipDate() { + return shipDate; + } + public void setShipDate(javax.xml.datatype.XMLGregorianCalendar shipDate) { + this.shipDate = shipDate; + } + /** + * Order Status + * @return status + **/ + public StatusEnum getStatus() { + return status; + } + public void setStatus(StatusEnum status) { + this.status = status; + } + /** + * Get complete + * @return complete + **/ + public Boolean getComplete() { + return complete; + } + public void setComplete(Boolean complete) { + this.complete = complete; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Order {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" petId: ").append(toIndentedString(petId)).append("\n"); + sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n"); + sb.append(" shipDate: ").append(toIndentedString(shipDate)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" complete: ").append(toIndentedString(complete)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java new file mode 100644 index 00000000000..0cfc0a30ee0 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Pet.java @@ -0,0 +1,154 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.model.Category; +import io.swagger.model.Tag; +import java.util.ArrayList; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="A pet for sale in the pet store") +public class Pet { + + @ApiModelProperty(example = "null", value = "") + private Long id = null; + @ApiModelProperty(example = "null", value = "") + private Category category = null; + @ApiModelProperty(example = "doggie", required = true, value = "") + private String name = null; + @ApiModelProperty(example = "null", required = true, value = "") + private List photoUrls = new ArrayList(); + @ApiModelProperty(example = "null", value = "") + private List tags = new ArrayList(); + +@XmlType(name="StatusEnum") +@XmlEnum(String.class) +public enum StatusEnum { + + @XmlEnumValue("available") AVAILABLE(String.valueOf("available")), @XmlEnumValue("pending") PENDING(String.valueOf("pending")), @XmlEnumValue("sold") SOLD(String.valueOf("sold")); + + + private String value; + + StatusEnum (String v) { + value = v; + } + + public String value() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StatusEnum fromValue(String v) { + for (StatusEnum b : StatusEnum.values()) { + if (String.valueOf(b.value).equals(v)) { + return b; + } + } + return null; + } +} + + @ApiModelProperty(example = "null", value = "pet status in the store") + private StatusEnum status = null; + + /** + * Get id + * @return id + **/ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + /** + * Get category + * @return category + **/ + public Category getCategory() { + return category; + } + public void setCategory(Category category) { + this.category = category; + } + /** + * Get name + * @return name + **/ + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + /** + * Get photoUrls + * @return photoUrls + **/ + public List getPhotoUrls() { + return photoUrls; + } + public void setPhotoUrls(List photoUrls) { + this.photoUrls = photoUrls; + } + /** + * Get tags + * @return tags + **/ + public List getTags() { + return tags; + } + public void setTags(List tags) { + this.tags = tags; + } + /** + * pet status in the store + * @return status + **/ + public StatusEnum getStatus() { + return status; + } + public void setStatus(StatusEnum status) { + this.status = status; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Pet {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" category: ").append(toIndentedString(category)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" photoUrls: ").append(toIndentedString(photoUrls)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java new file mode 100644 index 00000000000..4eb99ad2fc1 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/Tag.java @@ -0,0 +1,65 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="A tag for a pet") +public class Tag { + + @ApiModelProperty(example = "null", value = "") + private Long id = null; + @ApiModelProperty(example = "null", value = "") + private String name = null; + + /** + * Get id + * @return id + **/ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + /** + * Get name + * @return name + **/ + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Tag {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java new file mode 100644 index 00000000000..005d9aa8c74 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/gen/java/io/swagger/model/User.java @@ -0,0 +1,143 @@ +package io.swagger.model; + +import io.swagger.annotations.ApiModel; + +import io.swagger.annotations.ApiModelProperty; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +@ApiModel(description="A User who is purchasing from the pet store") +public class User { + + @ApiModelProperty(example = "null", value = "") + private Long id = null; + @ApiModelProperty(example = "null", value = "") + private String username = null; + @ApiModelProperty(example = "null", value = "") + private String firstName = null; + @ApiModelProperty(example = "null", value = "") + private String lastName = null; + @ApiModelProperty(example = "null", value = "") + private String email = null; + @ApiModelProperty(example = "null", value = "") + private String password = null; + @ApiModelProperty(example = "null", value = "") + private String phone = null; + @ApiModelProperty(example = "null", value = "User Status") + private Integer userStatus = null; + + /** + * Get id + * @return id + **/ + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + /** + * Get username + * @return username + **/ + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + /** + * Get firstName + * @return firstName + **/ + public String getFirstName() { + return firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + /** + * Get lastName + * @return lastName + **/ + public String getLastName() { + return lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + /** + * Get email + * @return email + **/ + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + /** + * Get password + * @return password + **/ + public String getPassword() { + return password; + } + public void setPassword(String password) { + this.password = password; + } + /** + * Get phone + * @return phone + **/ + public String getPhone() { + return phone; + } + public void setPhone(String phone) { + this.phone = phone; + } + /** + * User Status + * @return userStatus + **/ + public Integer getUserStatus() { + return userStatus; + } + public void setUserStatus(Integer userStatus) { + this.userStatus = userStatus; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class User {\n"); + + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" firstName: ").append(toIndentedString(firstName)).append("\n"); + sb.append(" lastName: ").append(toIndentedString(lastName)).append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" password: ").append(toIndentedString(password)).append("\n"); + sb.append(" phone: ").append(toIndentedString(phone)).append("\n"); + sb.append(" userStatus: ").append(toIndentedString(userStatus)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private static String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} + diff --git a/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java new file mode 100644 index 00000000000..9d4a9de9901 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java @@ -0,0 +1,205 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import io.swagger.model.Pet; +import io.swagger.model.ModelApiResponse; +import java.io.File; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for PetApi + */ +public class PetApiTest { + + + private PetApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", PetApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Add a new pet to the store + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void addPetTest() { + Pet body = null; + // response = api.addPet(body); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Deletes a pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deletePetTest() { + Long petId = null; + String apiKey = null; + // response = api.deletePet(petId, apiKey); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Finds Pets by status + * + * Multiple status values can be provided with comma separated strings + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void findPetsByStatusTest() { + List status = null; + //List response = api.findPetsByStatus(status); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Finds Pets by tags + * + * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void findPetsByTagsTest() { + List tags = null; + //List response = api.findPetsByTags(tags); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Find pet by ID + * + * Returns a single pet + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getPetByIdTest() { + Long petId = null; + //Pet response = api.getPetById(petId); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Update an existing pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updatePetTest() { + Pet body = null; + // response = api.updatePet(body); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Updates a pet in the store with form data + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updatePetWithFormTest() { + Long petId = null; + String name = null; + String status = null; + // response = api.updatePetWithForm(petId, name, status); + //assertNotNull(response); + // TODO: test validations + } + + /** + * uploads an image + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void uploadFileTest() { + Long petId = null; + String additionalMetadata = null; + File file = null; + //ModelApiResponse response = api.uploadFile(petId, additionalMetadata, file); + //assertNotNull(response); + // TODO: test validations + } + +} diff --git a/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java new file mode 100644 index 00000000000..81053a82b29 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java @@ -0,0 +1,133 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import io.swagger.model.Order; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for StoreApi + */ +public class StoreApiTest { + + + private StoreApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", StoreApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Delete purchase order by ID + * + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deleteOrderTest() { + String orderId = null; + // response = api.deleteOrder(orderId); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Returns pet inventories by status + * + * Returns a map of status codes to quantities + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getInventoryTest() { + //Map response = api.getInventory(); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Find purchase order by ID + * + * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getOrderByIdTest() { + Long orderId = null; + //Order response = api.getOrderById(orderId); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Place an order for a pet + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void placeOrderTest() { + Order body = null; + //Order response = api.placeOrder(body); + //assertNotNull(response); + // TODO: test validations + } + +} diff --git a/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java new file mode 100644 index 00000000000..126c7018935 --- /dev/null +++ b/samples/client/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java @@ -0,0 +1,199 @@ +/** + * Swagger Petstore + * This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * Contact: apiteam@swagger.io + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package io.swagger.api; + +import io.swagger.model.User; +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +import javax.ws.rs.core.Response; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.ClientConfiguration; +import org.apache.cxf.jaxrs.client.WebClient; + + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + + + +/** + * API tests for UserApi + */ +public class UserApiTest { + + + private UserApi api; + + @Before + public void setup() { + JacksonJsonProvider provider = new JacksonJsonProvider(); + List providers = new ArrayList(); + providers.add(provider); + + api = JAXRSClientFactory.create("http://petstore.swagger.io/v2", UserApi.class, providers); + org.apache.cxf.jaxrs.client.Client client = WebClient.client(api); + + ClientConfiguration config = WebClient.getConfig(client); + } + + + /** + * Create user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUserTest() { + User body = null; + // response = api.createUser(body); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Creates list of users with given input array + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUsersWithArrayInputTest() { + List body = null; + // response = api.createUsersWithArrayInput(body); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Creates list of users with given input array + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void createUsersWithListInputTest() { + List body = null; + // response = api.createUsersWithListInput(body); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Delete user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deleteUserTest() { + String username = null; + // response = api.deleteUser(username); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Get user by user name + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getUserByNameTest() { + String username = null; + //User response = api.getUserByName(username); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Logs user into the system + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void loginUserTest() { + String username = null; + String password = null; + //String response = api.loginUser(username, password); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Logs out current logged in user session + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void logoutUserTest() { + // response = api.logoutUser(); + //assertNotNull(response); + // TODO: test validations + } + + /** + * Updated user + * + * This can only be done by the logged in user. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void updateUserTest() { + String username = null; + User body = null; + // response = api.updateUser(username, body); + //assertNotNull(response); + // TODO: test validations + } + +} From 828419fca9041c4afdd6249d991bcefa1c79f5b1 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 11 Nov 2016 16:04:49 +0100 Subject: [PATCH 30/42] add switch to load SwaggerUI automatically #4088 --- .../codegen/languages/JavaCXFServerCodegen.java | 10 ++++++++++ .../codegen/languages/features/CXFServerFeatures.java | 3 ++- .../codegen/languages/features/SwaggerUIFeatures.java | 9 +++++++++ .../cxf/server/ApplicationContext.xml.mustache | 4 ++-- .../main/resources/JavaJaxRS/cxf/server/pom.mustache | 7 +++++++ .../codegen/jaxrs/JaxrsCXFServerOptionsTest.java | 3 +++ .../codegen/options/JavaCXFServerOptionsProvider.java | 4 ++++ 7 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SwaggerUIFeatures.java 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 ebfd7eebebf..4c9210b2253 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 @@ -34,6 +34,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen protected boolean useSwaggerFeature = false; + protected boolean useSwaggerUI = false; + protected boolean useWadlFeature = false; protected boolean useMultipartFeature = false; @@ -85,6 +87,8 @@ public JavaCXFServerCodegen() cliOptions.add(CliOption.newBoolean(USE_SPRING_ANNOTATION_CONFIG, "Use Spring Annotation Config")); cliOptions.add(CliOption.newBoolean(USE_SWAGGER_FEATURE, "Use Swagger Feature")); + cliOptions.add(CliOption.newBoolean(USE_SWAGGER_UI, "Use Swagger UI")); + cliOptions.add(CliOption.newBoolean(USE_WADL_FEATURE, "Use WADL Feature")); cliOptions.add(CliOption.newBoolean(USE_MULTIPART_FEATURE, "Use Multipart Feature")); @@ -122,6 +126,8 @@ public void processOpts() this.setGenerateSpringApplication(convertPropertyToBooleanAndWriteBack(GENERATE_SPRING_APPLICATION)); this.setUseSwaggerFeature(convertPropertyToBooleanAndWriteBack(USE_SWAGGER_FEATURE)); + this.setUseSwaggerUI(convertPropertyToBooleanAndWriteBack(USE_SWAGGER_UI)); + this.setUseWadlFeature(convertPropertyToBooleanAndWriteBack(USE_WADL_FEATURE)); this.setUseMultipartFeature(convertPropertyToBooleanAndWriteBack(USE_MULTIPART_FEATURE)); this.setUseGzipFeature(convertPropertyToBooleanAndWriteBack(USE_GZIP_FEATURE)); @@ -266,4 +272,8 @@ public void setUseLoggingFeatureForTests(boolean useLoggingFeatureForTests) { this.useLoggingFeatureForTests = useLoggingFeatureForTests; } + public void setUseSwaggerUI(boolean useSwaggerUI) { + this.useSwaggerUI = useSwaggerUI; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index 1c897ebba1f..f8adc0b2bfc 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -5,7 +5,8 @@ * */ public interface CXFServerFeatures - extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures + extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures, + SwaggerUIFeatures { public static final String USE_WADL_FEATURE = "useWadlFeature"; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SwaggerUIFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SwaggerUIFeatures.java new file mode 100644 index 00000000000..1ed4a586287 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/SwaggerUIFeatures.java @@ -0,0 +1,9 @@ +package io.swagger.codegen.languages.features; + +public interface SwaggerUIFeatures extends CXFFeatures { + + public static final String USE_SWAGGER_UI = "useSwaggerUI"; + + public void setUseSwaggerUI(boolean useSwaggerUI); + +} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache index 9d5d53d5619..35f1e9c2715 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache @@ -37,8 +37,8 @@ {{! http://cxf.apache.org/docs/swagger2feature.html }} - {{! http://cxf.apache.org/docs/swagger2feature.html }} - + {{#useSwaggerUI}} {{/useSwaggerUI}} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/application.properties.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/application.properties.mustache new file mode 100644 index 00000000000..dae57151736 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/application.properties.mustache @@ -0,0 +1 @@ +cxf.path=/ \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/readme.md b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/readme.md index 27925cedf44..0f26af22127 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/readme.md +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/readme.md @@ -5,12 +5,25 @@ * Bean-Validation-API support * Spring-configuration of Swagger, WADL and Endpoints * Swagger-API is accessible (CXF3 Swagger2Feature) +* Swagger-UI can be included as Web-Jar automatically * WADL is accessible (CXF WADL-Generator) * Unit-tests include Gzip-Interceptors for demonstration ## Urls to access the REST API +### Urls for Spring Boot +* Available services listing +http://localhost:8080/ + +* Swagger API + http://localhost:8080/services/swagger.json + +* CXF WADL + http://localhost:8080/services?_wadl + + +### Urls if deployed to an AS * Available services listing http://localhost:8080/swagger-cxf-server/rest/services/ From 021bf083522c67a49fb1d7731042914558710913 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 11 Nov 2016 18:44:35 +0100 Subject: [PATCH 35/42] fix spring xml config #4088 --- .../JavaJaxRS/cxf/server/ApplicationContext.xml.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache index 619b6d7d07e..b4cdc5b6cfd 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/ApplicationContext.xml.mustache @@ -25,13 +25,13 @@ {{/useSpringAnnotationConfig}} -{{#^useSpringAnnotationConfig}} +{{^useSpringAnnotationConfig}} {{#apiInfo}} {{#apis}} {{/apis}} {{/apiInfo}} -{{/^useSpringAnnotationConfig}} +{{/useSpringAnnotationConfig}} {{#useSwaggerFeature}} From c1e87aeb61e7722fe85984c57cb75a6f4d35a4a9 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 11 Nov 2016 18:45:15 +0100 Subject: [PATCH 36/42] fix external enum usage for jaxrs-cxf #4160 --- .../JavaJaxRS/cxf/enumOuterClass.mustache | 43 +++++++++++++++++++ .../resources/JavaJaxRS/cxf/model.mustache | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/enumOuterClass.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/enumOuterClass.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/enumOuterClass.mustache new file mode 100644 index 00000000000..85de81431b6 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/enumOuterClass.mustache @@ -0,0 +1,43 @@ +{{#jackson}} +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +{{/jackson}} + +/** + * {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} + */ +public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} { + {{#gson}} + {{#allowableValues}}{{#enumVars}} + @SerializedName({{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}{{{value}}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isLong}}"{{/isLong}}{{#isFloat}}"{{/isFloat}}) + {{{name}}}({{{value}}}){{^-last}}, + {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} + {{/gson}} + {{^gson}} + {{#allowableValues}}{{#enumVars}} + {{{name}}}({{{value}}}){{^-last}}, + {{/-last}}{{#-last}};{{/-last}}{{/enumVars}}{{/allowableValues}} + {{/gson}} + + private {{{dataType}}} value; + + {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}({{{dataType}}} value) { + this.value = value; + } + + @Override + @JsonValue + public String toString() { + return String.valueOf(value); + } + + @JsonCreator + public static {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} fromValue(String text) { + for ({{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} b : {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}}.values()) { + if (String.valueOf(b.value).equals(text)) { + return b; + } + } + return null; + } +} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/model.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/model.mustache index aa3501d796e..0030cf7dd0c 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/model.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/model.mustache @@ -9,7 +9,7 @@ import javax.validation.constraints.*; {{#models}} {{#model}} {{#isEnum}} -{{>enumClass}} +{{>enumOuterClass}} {{/isEnum}} {{^isEnum}} {{>pojo}} From ecfd1c0589df2a7446ba9ba86cfeee4cf16abc68 Mon Sep 17 00:00:00 2001 From: jfiala Date: Sat, 12 Nov 2016 16:12:32 +0100 Subject: [PATCH 37/42] cleanup jaxrs-annotations in impl class --- .../main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache | 2 +- .../main/resources/JavaJaxRS/cxf/formParamsImpl.mustache | 1 + .../resources/JavaJaxRS/cxf/headerParamsImpl.mustache | 1 + .../main/resources/JavaJaxRS/cxf/pathParamsImpl.mustache | 1 + .../main/java/io/swagger/api/impl/PetApiServiceImpl.java | 9 ++++----- .../java/io/swagger/api/impl/StoreApiServiceImpl.java | 4 ++-- .../java/io/swagger/api/impl/UserApiServiceImpl.java | 6 +++--- 7 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParamsImpl.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/headerParamsImpl.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pathParamsImpl.mustache diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache index d7d9537c85c..ee5d8269955 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/apiServiceImpl.mustache @@ -28,7 +28,7 @@ import org.springframework.stereotype.Service; public class {{classname}}ServiceImpl implements {{classname}} { {{#operations}} {{#operation}} - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParamsImpl}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParamsImpl}}{{>pathParamsImpl}}{{>headerParamsImpl}}{{>bodyParams}}{{>formParamsImpl}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { // TODO: Implement... {{^vendorExtensions.x-java-is-response-void}}return null;{{/vendorExtensions.x-java-is-response-void}} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParamsImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParamsImpl.mustache new file mode 100644 index 00000000000..e8c0e77c156 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParamsImpl.mustache @@ -0,0 +1 @@ +{{#isFormParam}}{{#notFile}}{{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} Attachment {{paramName}}Detail{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/headerParamsImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/headerParamsImpl.mustache new file mode 100644 index 00000000000..bd03573d196 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/headerParamsImpl.mustache @@ -0,0 +1 @@ +{{#isHeaderParam}}{{{dataType}}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pathParamsImpl.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pathParamsImpl.mustache new file mode 100644 index 00000000000..6829cf8c7a6 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/pathParamsImpl.mustache @@ -0,0 +1 @@ +{{#isPathParam}}{{{dataType}}} {{paramName}}{{/isPathParam}} \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java index 6dea43331b0..9c952820070 100644 --- a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/PetApiServiceImpl.java @@ -25,7 +25,7 @@ public void addPet(Pet body) { } - public void deletePet(@PathParam("petId") Long petId, @HeaderParam("api_key") String apiKey) { + public void deletePet(Long petId, String apiKey) { // TODO: Implement... @@ -43,7 +43,7 @@ public Pet findPetsByTags(List tags) { return null; } - public Pet getPetById(@PathParam("petId") Long petId) { + public Pet getPetById(Long petId) { // TODO: Implement... return null; @@ -55,14 +55,13 @@ public void updatePet(Pet body) { } - public void updatePetWithForm(@PathParam("petId") Long petId, @Multipart(value = "name", required = false) String name, @Multipart(value = "status", required = false) String status) { + public void updatePetWithForm(Long petId, String name, String status) { // TODO: Implement... } - public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, - @Multipart(value = "file" , required = false) Attachment fileDetail) { + public ModelApiResponse uploadFile(Long petId, String additionalMetadata, Attachment fileDetail) { // TODO: Implement... return null; diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java index 4e36fd37d70..cbcc2de9e2a 100644 --- a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/StoreApiServiceImpl.java @@ -18,7 +18,7 @@ import io.swagger.annotations.Api; public class StoreApiServiceImpl implements StoreApi { - public void deleteOrder(@PathParam("orderId") String orderId) { + public void deleteOrder(String orderId) { // TODO: Implement... @@ -30,7 +30,7 @@ public Integer getInventory() { return null; } - public Order getOrderById(@PathParam("orderId") Long orderId) { + public Order getOrderById(Long orderId) { // TODO: Implement... return null; diff --git a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java index ad39fcffbe8..8fac5414a23 100644 --- a/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java +++ b/samples/server/petstore/jaxrs-cxf/src/main/java/io/swagger/api/impl/UserApiServiceImpl.java @@ -36,13 +36,13 @@ public void createUsersWithListInput(List body) { } - public void deleteUser(@PathParam("username") String username) { + public void deleteUser(String username) { // TODO: Implement... } - public User getUserByName(@PathParam("username") String username) { + public User getUserByName(String username) { // TODO: Implement... return null; @@ -60,7 +60,7 @@ public void logoutUser() { } - public void updateUser(@PathParam("username") String username, User body) { + public void updateUser(String username, User body) { // TODO: Implement... From 2df0565ccda6e0fa18a9af93e8b05f57378b78a0 Mon Sep 17 00:00:00 2001 From: jfiala Date: Sat, 12 Nov 2016 16:18:18 +0100 Subject: [PATCH 38/42] fix handling of multiparts #4088 --- .../resources/JavaJaxRS/cxf/api_test.mustache | 8 ++++-- .../JavaJaxRS/cxf/formParams.mustache | 3 +- .../src/gen/java/io/swagger/api/PetApi.java | 3 +- .../test/java/io/swagger/api/PetApiTest.java | 26 +++++++++++++---- .../java/io/swagger/api/StoreApiTest.java | 10 ++++++- .../test/java/io/swagger/api/UserApiTest.java | 28 +++++++++++++++---- 6 files changed, 59 insertions(+), 19 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache index 53d4c46e26d..34308df4314 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api_test.mustache @@ -66,7 +66,7 @@ public class {{classname}}Test { providers.add(provider); {{#generateSpringBootApplication}} - api = JAXRSClientFactory.create("http://localhost:" + serverPort + "/services/services", {{classname}}.class, providers); + api = JAXRSClientFactory.create("http://localhost:" + serverPort + "/services", {{classname}}.class, providers); {{/generateSpringBootApplication}} {{^generateSpringBootApplication}} api = JAXRSClientFactory.create("{{basePath}}", {{classname}}.class, providers); @@ -101,11 +101,13 @@ public class {{classname}}Test { @Test public void {{operationId}}Test() { {{#allParams}} - {{{dataType}}} {{paramName}} = null; + {{^isFile}}{{{dataType}}} {{paramName}} = null;{{/isFile}}{{#isFile}}org.apache.cxf.jaxrs.ext.multipart.Attachment {{paramName}} = null;{{/isFile}} {{/allParams}} //{{^vendorExtensions.x-java-is-response-void}}{{{returnType}}} response = {{/vendorExtensions.x-java-is-response-void}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); - //{{^vendorExtensions.x-java-is-response-void}}assertNotNull(response);{{/vendorExtensions.x-java-is-response-void}} + {{^vendorExtensions.x-java-is-response-void}}//assertNotNull(response);{{/vendorExtensions.x-java-is-response-void}} // TODO: test validations + + } {{/operation}}{{/operations}} } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParams.mustache index c129a925e94..f4988929e52 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/formParams.mustache @@ -1,2 +1 @@ -{{#isFormParam}}{{#notFile}}@Multipart(value = "{{paramName}}"{{^required}}, required = false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} @Multipart(value = "{{paramName}}"{{^required}}, required = false{{/required}}) InputStream {{paramName}}InputStream, - @Multipart(value = "{{paramName}}" {{^required}}, required = false{{/required}}) Attachment {{paramName}}Detail{{/isFile}}{{/isFormParam}} \ No newline at end of file +{{#isFormParam}}{{#notFile}}@Multipart(value = "{{paramName}}"{{^required}}, required = false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}} @Multipart(value = "{{paramName}}" {{^required}}, required = false{{/required}}) Attachment {{paramName}}Detail{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java index 659f0452f26..608b51f96d8 100644 --- a/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java +++ b/samples/server/petstore/jaxrs-cxf/src/gen/java/io/swagger/api/PetApi.java @@ -72,7 +72,6 @@ public interface PetApi { @Consumes({ "multipart/form-data" }) @Produces({ "application/json" }) @ApiOperation(value = "uploads an image", tags={ "pet" }) - public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file", required = false) InputStream fileInputStream, - @Multipart(value = "file" , required = false) Attachment fileDetail); + public ModelApiResponse uploadFile(@PathParam("petId") Long petId, @Multipart(value = "additionalMetadata", required = false) String additionalMetadata, @Multipart(value = "file" , required = false) Attachment fileDetail); } diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java index cb290ef291a..44cf564dec1 100644 --- a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/PetApiTest.java @@ -81,8 +81,10 @@ public void setup() { public void addPetTest() { Pet body = null; //api.addPet(body); - // + // TODO: test validations + + } /** @@ -98,8 +100,10 @@ public void deletePetTest() { Long petId = null; String apiKey = null; //api.deletePet(petId, apiKey); - // + // TODO: test validations + + } /** @@ -116,6 +120,8 @@ public void findPetsByStatusTest() { //Pet response = api.findPetsByStatus(status); //assertNotNull(response); // TODO: test validations + + } /** @@ -132,6 +138,8 @@ public void findPetsByTagsTest() { //Pet response = api.findPetsByTags(tags); //assertNotNull(response); // TODO: test validations + + } /** @@ -148,6 +156,8 @@ public void getPetByIdTest() { //Pet response = api.getPetById(petId); //assertNotNull(response); // TODO: test validations + + } /** @@ -162,8 +172,10 @@ public void getPetByIdTest() { public void updatePetTest() { Pet body = null; //api.updatePet(body); - // + // TODO: test validations + + } /** @@ -180,8 +192,10 @@ public void updatePetWithFormTest() { String name = null; String status = null; //api.updatePetWithForm(petId, name, status); - // + // TODO: test validations + + } /** @@ -196,10 +210,12 @@ public void updatePetWithFormTest() { public void uploadFileTest() { Long petId = null; String additionalMetadata = null; - File file = null; + org.apache.cxf.jaxrs.ext.multipart.Attachment file = null; //ModelApiResponse response = api.uploadFile(petId, additionalMetadata, file); //assertNotNull(response); // TODO: test validations + + } } diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java index 50b5f1cc93a..e54e33f0fbc 100644 --- a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/StoreApiTest.java @@ -80,8 +80,10 @@ public void setup() { public void deleteOrderTest() { String orderId = null; //api.deleteOrder(orderId); - // + // TODO: test validations + + } /** @@ -97,6 +99,8 @@ public void getInventoryTest() { //Integer response = api.getInventory(); //assertNotNull(response); // TODO: test validations + + } /** @@ -113,6 +117,8 @@ public void getOrderByIdTest() { //Order response = api.getOrderById(orderId); //assertNotNull(response); // TODO: test validations + + } /** @@ -129,6 +135,8 @@ public void placeOrderTest() { //Order response = api.placeOrder(body); //assertNotNull(response); // TODO: test validations + + } } diff --git a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java index 6eca9bda2ec..2285f3c70cf 100644 --- a/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java +++ b/samples/server/petstore/jaxrs-cxf/src/test/java/io/swagger/api/UserApiTest.java @@ -80,8 +80,10 @@ public void setup() { public void createUserTest() { User body = null; //api.createUser(body); - // + // TODO: test validations + + } /** @@ -96,8 +98,10 @@ public void createUserTest() { public void createUsersWithArrayInputTest() { List body = null; //api.createUsersWithArrayInput(body); - // + // TODO: test validations + + } /** @@ -112,8 +116,10 @@ public void createUsersWithArrayInputTest() { public void createUsersWithListInputTest() { List body = null; //api.createUsersWithListInput(body); - // + // TODO: test validations + + } /** @@ -128,8 +134,10 @@ public void createUsersWithListInputTest() { public void deleteUserTest() { String username = null; //api.deleteUser(username); - // + // TODO: test validations + + } /** @@ -146,6 +154,8 @@ public void getUserByNameTest() { //User response = api.getUserByName(username); //assertNotNull(response); // TODO: test validations + + } /** @@ -163,6 +173,8 @@ public void loginUserTest() { //String response = api.loginUser(username, password); //assertNotNull(response); // TODO: test validations + + } /** @@ -176,8 +188,10 @@ public void loginUserTest() { @Test public void logoutUserTest() { //api.logoutUser(); - // + // TODO: test validations + + } /** @@ -193,8 +207,10 @@ public void updateUserTest() { String username = null; User body = null; //api.updateUser(username, body); - // + // TODO: test validations + + } } From 786d46538a8c302edc6a2d248782a83917cf22fe Mon Sep 17 00:00:00 2001 From: jfiala Date: Sat, 12 Nov 2016 23:24:15 +0100 Subject: [PATCH 39/42] fix @Min/@Max comments in beanValidationQueryParams #4088 --- .../resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache index c8635ad6f4a..cca08f4b2c4 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/beanValidationQueryParams.mustache @@ -1 +1 @@ -{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}// @Min({{minimum}}){{/minimum}}{{#maximum}}// @Max({{maximum}}){{/maximum}} \ No newline at end of file +{{#required}} @NotNull{{/required}}{{#pattern}} @Pattern(regexp="{{pattern}}"){{/pattern}}{{#minLength}}{{#maxLength}} @Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minLength}}{{^maxLength}} @Size(min={{minLength}}){{/maxLength}}{{/minLength}}{{^minLength}}{{#maxLength}} @Size(max={{maxLength}}){{/maxLength}}{{/minLength}}{{#minItems}}{{#maxItems}} @Size(min={{minItems}},max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minItems}}{{^maxItems}} @Size(min={{minItems}}){{/maxItems}}{{/minItems}}{{^minItems}}{{#maxItems}} @Size(max={{maxItems}}){{/maxItems}}{{/minItems}}{{#minimum}}/* @Min({{minimum}}) */{{/minimum}}{{#maximum}}/* @Max({{maximum}}) */{{/maximum}} \ No newline at end of file From a57ea02f753578261209ad3db72ddb2105213f14 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 18 Nov 2016 22:51:05 +0100 Subject: [PATCH 40/42] add swagger-codegen-ignore file+add src/test/resources #4088 --- .../AbstractJavaJAXRSServerCodegen.java | 1 + .../languages/JavaCXFServerCodegen.java | 6 ++++- .../server/swagger-codegen-ignore.mustache | 25 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/swagger-codegen-ignore.mustache diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaJAXRSServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaJAXRSServerCodegen.java index af961e9983b..08410c47d44 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaJAXRSServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaJAXRSServerCodegen.java @@ -17,6 +17,7 @@ public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen */ protected static final String JAXRS_TEMPLATE_DIRECTORY_NAME = "JavaJaxRS"; protected String implFolder = "src/main/java"; + protected String testResourcesFolder = "src/test/resources"; protected String title = "Swagger Server"; static Logger LOGGER = LoggerFactory.getLogger(AbstractJavaJAXRSServerCodegen.class); 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 23fdc1d11ba..34a0305e9cd 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 @@ -155,6 +155,9 @@ public void processOpts() writeOptional(outputFolder, new SupportingFile("server/pom.mustache", "", "pom.xml")); + writeOptional(outputFolder, + new SupportingFile("server/swagger-codegen-ignore.mustache", "", ".swagger-codegen-ignore")); + if (this.generateSpringApplication) { writeOptional(outputFolder, new SupportingFile("server/readme.md", "", "readme.md")); @@ -177,7 +180,8 @@ public void processOpts() writeOptional(outputFolder, new SupportingFile("server/SpringBootApplication.mustache", (testFolder + '/' + apiPackage).replace(".", "/"), "SpringBootApplication.java")); writeOptional(outputFolder, new SupportingFile("server/application.properties.mustache", - (testFolder + '/'), "application.properties")); + (testResourcesFolder + '/'), "application.properties")); + } } diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/swagger-codegen-ignore.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/swagger-codegen-ignore.mustache new file mode 100644 index 00000000000..ec46bbd69c0 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/server/swagger-codegen-ignore.mustache @@ -0,0 +1,25 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md + +**/impl/* \ No newline at end of file From e86b6c3385df62fc6d30a5489da8d5c4d7b45337 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 18 Nov 2016 23:04:09 +0100 Subject: [PATCH 41/42] add cli-flag for produces/consumes json in api #4088 --- .../languages/JavaCXFServerCodegen.java | 12 + .../languages/features/CXFServerFeatures.java | 44 ++-- .../main/resources/JavaJaxRS/cxf/api.mustache | 86 +++---- .../jaxrs/JaxrsCXFServerOptionsTest.java | 213 +++++++++--------- .../options/JavaCXFServerOptionsProvider.java | 178 ++++++++------- 5 files changed, 279 insertions(+), 254 deletions(-) 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 34a0305e9cd..6404f74e3a0 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 @@ -24,6 +24,8 @@ public class JavaCXFServerCodegen extends AbstractJavaJAXRSServerCodegen { private static final Logger LOGGER = LoggerFactory.getLogger(JavaCXFServerCodegen.class); + protected boolean addConsumesProducesJson = true; + protected boolean useJaxbAnnotations = true; protected boolean useBeanValidation = false; @@ -103,6 +105,8 @@ public JavaCXFServerCodegen() cliOptions.add( CliOption.newBoolean(GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, "Generate Jboss Deployment Descriptor")); + cliOptions + .add(CliOption.newBoolean(ADD_CONSUMES_PRODUCES_JSON, "Add @Consumes/@Produces Json to API interface")); } @@ -122,6 +126,10 @@ public void processOpts() this.setUseBeanValidation(useBeanValidationProp); } + if (additionalProperties.containsKey(ADD_CONSUMES_PRODUCES_JSON)) { + this.setAddConsumesProducesJson(convertPropertyToBooleanAndWriteBack(ADD_CONSUMES_PRODUCES_JSON)); + } + if (additionalProperties.containsKey(GENERATE_SPRING_APPLICATION)) { this.setGenerateSpringApplication(convertPropertyToBooleanAndWriteBack(GENERATE_SPRING_APPLICATION)); @@ -281,4 +289,8 @@ public void setUseSwaggerUI(boolean useSwaggerUI) { this.useSwaggerUI = useSwaggerUI; } + public void setAddConsumesProducesJson(boolean addConsumesProducesJson) { + this.addConsumesProducesJson = addConsumesProducesJson; + } + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java index f8adc0b2bfc..eaa012b987a 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/features/CXFServerFeatures.java @@ -1,20 +1,24 @@ -package io.swagger.codegen.languages.features; - -/** - * Features supported by CXF 3 server - * - */ -public interface CXFServerFeatures - extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures, - SwaggerUIFeatures -{ - - public static final String USE_WADL_FEATURE = "useWadlFeature"; - - public static final String USE_MULTIPART_FEATURE = "useMultipartFeature"; - - public void setUseWadlFeature(boolean useWadlFeature); - - public void setUseMultipartFeature(boolean useMultipartFeature); - -} +package io.swagger.codegen.languages.features; + +/** + * Features supported by CXF 3 server + * + */ +public interface CXFServerFeatures + extends CXFFeatures, SwaggerFeatures, SpringFeatures, JbossFeature, BeanValidationExtendedFeatures, + SwaggerUIFeatures +{ + + public static final String USE_WADL_FEATURE = "useWadlFeature"; + + public static final String USE_MULTIPART_FEATURE = "useMultipartFeature"; + + public static final String ADD_CONSUMES_PRODUCES_JSON = "addConsumesProducesJson"; + + public void setUseWadlFeature(boolean useWadlFeature); + + public void setUseMultipartFeature(boolean useMultipartFeature); + + public void setAddConsumesProducesJson(boolean addConsumesProducesJson); + +} diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache index da06fb21ec9..7fbcc9cea4d 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/cxf/api.mustache @@ -1,42 +1,44 @@ -package {{package}}; - -{{#imports}}import {{import}}; -{{/imports}} - -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import javax.ws.rs.*; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.MediaType; -import org.apache.cxf.jaxrs.ext.multipart.*; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -{{#useBeanValidation}} -import javax.validation.constraints.*; -{{/useBeanValidation}} - -@Path("/") -@Api(value = "/", description = "{{description}}") -@Consumes(MediaType.APPLICATION_JSON) -@Produces(MediaType.APPLICATION_JSON) -public interface {{classname}} { -{{#operations}} -{{#operation}} - - @{{httpMethod}} - {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} -{{#hasConsumes}} - @Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }) -{{/hasConsumes}} -{{#hasProduces}} - @Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) -{{/hasProduces}} - @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) - public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); -{{/operation}} -} -{{/operations}} - +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.Map; +import javax.ws.rs.*; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.MediaType; +import org.apache.cxf.jaxrs.ext.multipart.*; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +{{#useBeanValidation}} +import javax.validation.constraints.*; +{{/useBeanValidation}} + +@Path("/") +@Api(value = "/", description = "{{description}}") +{{#addConsumesProducesJson}} +@Consumes(MediaType.APPLICATION_JSON) +@Produces(MediaType.APPLICATION_JSON) +{{/addConsumesProducesJson}} +public interface {{classname}} { +{{#operations}} +{{#operation}} + + @{{httpMethod}} + {{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}} +{{#hasConsumes}} + @Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }) +{{/hasConsumes}} +{{#hasProduces}} + @Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }) +{{/hasProduces}} + @ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} }) + public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}); +{{/operation}} +} +{{/operations}} + diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java index bef7b5bdd53..ef3de3a8900 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/jaxrs/JaxrsCXFServerOptionsTest.java @@ -1,105 +1,108 @@ -package io.swagger.codegen.jaxrs; - -import io.swagger.codegen.AbstractOptionsTest; -import io.swagger.codegen.CodegenConfig; -import io.swagger.codegen.languages.JavaCXFServerCodegen; -import io.swagger.codegen.options.JavaCXFServerOptionsProvider; -import io.swagger.codegen.options.OptionsProvider; -import mockit.Expectations; -import mockit.Tested; - -public class JaxrsCXFServerOptionsTest extends AbstractOptionsTest { - - @Tested - private JavaCXFServerCodegen clientCodegen; - - public JaxrsCXFServerOptionsTest() { - super(new JavaCXFServerOptionsProvider()); - } - - protected JaxrsCXFServerOptionsTest(OptionsProvider optionsProvider) { - super(optionsProvider); - } - - @Override - protected CodegenConfig getCodegenConfig() { - return clientCodegen; - } - - @Override - protected void setExpectations() { - new Expectations(clientCodegen) { - { - clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - clientCodegen - .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); - times = 1; - clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); - times = 1; - clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); - times = 1; - clientCodegen - .setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); - times = 1; - clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); - times = 1; - clientCodegen.setSerializeBigDecimalAsString(true); - times = 1; - - clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); - times = 1; - - clientCodegen.setGenerateSpringApplication( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); - times = 1; - clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); - times = 1; - clientCodegen - .setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); - times = 1; - clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); - times = 1; - clientCodegen.setUseGzipFeatureForTests(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); - times = 1; - clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); - times = 1; - clientCodegen.setUseLoggingFeatureForTests( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); - times = 1; - clientCodegen.setUseBeanValidationFeature( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); - times = 1; - - clientCodegen.setGenerateSpringBootApplication( - Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); - times = 1; - - clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); - times = 1; - - clientCodegen.setUseSpringAnnotationConfig( - Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); - times = 1; - - clientCodegen.setGenerateJbossDeploymentDescriptor( - Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); - times = 1; - - clientCodegen.setUseSwaggerUI(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_UI)); - times = 1; - - } - }; - } -} +package io.swagger.codegen.jaxrs; + +import io.swagger.codegen.AbstractOptionsTest; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.languages.JavaCXFServerCodegen; +import io.swagger.codegen.options.JavaCXFServerOptionsProvider; +import io.swagger.codegen.options.OptionsProvider; +import mockit.Expectations; +import mockit.Tested; + +public class JaxrsCXFServerOptionsTest extends AbstractOptionsTest { + + @Tested + private JavaCXFServerCodegen clientCodegen; + + public JaxrsCXFServerOptionsTest() { + super(new JavaCXFServerOptionsProvider()); + } + + protected JaxrsCXFServerOptionsTest(OptionsProvider optionsProvider) { + super(optionsProvider); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @Override + protected void setExpectations() { + new Expectations(clientCodegen) { + { + clientCodegen.setModelPackage(JavaCXFServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(JavaCXFServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + clientCodegen + .setSortParamsByRequiredFlag(Boolean.valueOf(JavaCXFServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setInvokerPackage(JavaCXFServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setGroupId(JavaCXFServerOptionsProvider.GROUP_ID_VALUE); + times = 1; + clientCodegen.setArtifactId(JavaCXFServerOptionsProvider.ARTIFACT_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(JavaCXFServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + clientCodegen.setSourceFolder(JavaCXFServerOptionsProvider.SOURCE_FOLDER_VALUE); + times = 1; + clientCodegen.setLocalVariablePrefix(JavaCXFServerOptionsProvider.LOCAL_PREFIX_VALUE); + times = 1; + clientCodegen + .setSerializableModel(Boolean.valueOf(JavaCXFServerOptionsProvider.SERIALIZABLE_MODEL_VALUE)); + times = 1; + clientCodegen.setFullJavaUtil(Boolean.valueOf(JavaCXFServerOptionsProvider.FULL_JAVA_UTIL_VALUE)); + times = 1; + clientCodegen.setSerializeBigDecimalAsString(true); + times = 1; + + clientCodegen.setUseBeanValidation(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION)); + times = 1; + + clientCodegen.setGenerateSpringApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_FEATURE)); + times = 1; + clientCodegen.setUseWadlFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_WADL_FEATURE)); + times = 1; + clientCodegen + .setUseMultipartFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_MULTIPART_FEATURE)); + times = 1; + clientCodegen.setUseGzipFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; + clientCodegen.setUseGzipFeatureForTests(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_GZIP_FEATURE)); + times = 1; + clientCodegen.setUseLoggingFeature(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE)); + times = 1; + clientCodegen.setUseLoggingFeatureForTests( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_LOGGING_FEATURE_FOR_TESTS)); + times = 1; + clientCodegen.setUseBeanValidationFeature( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_BEANVALIDATION_FEATURE)); + times = 1; + + clientCodegen.setGenerateSpringBootApplication( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_SPRING_BOOT_APPLICATION)); + times = 1; + + clientCodegen.setUseJaxbAnnotations(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_JAXB_ANNOTATIONS)); + times = 1; + + clientCodegen.setUseSpringAnnotationConfig( + Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SPRING_ANNOTATION_CONFIG)); + times = 1; + + clientCodegen.setGenerateJbossDeploymentDescriptor( + Boolean.valueOf(JavaCXFServerOptionsProvider.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR)); + times = 1; + + clientCodegen.setUseSwaggerUI(Boolean.valueOf(JavaCXFServerOptionsProvider.USE_SWAGGER_UI)); + times = 1; + + clientCodegen.setAddConsumesProducesJson( + Boolean.valueOf(JavaCXFServerOptionsProvider.ADD_CONSUMES_PRODUCES_JSON)); + times = 1; + } + }; + } +} diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java index e0a26376e88..fa32252c0b0 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/JavaCXFServerOptionsProvider.java @@ -1,87 +1,91 @@ -package io.swagger.codegen.options; - -import java.util.Map; - -import com.google.common.collect.ImmutableMap; - -import io.swagger.codegen.CodegenConstants; -import io.swagger.codegen.languages.JavaCXFServerCodegen; - -public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { - - public static final String USE_JAXB_ANNOTATIONS = "true"; - - public static final String GENERATE_SPRING_APPLICATION = "true"; - - public static final String USE_SWAGGER_FEATURE = "true"; - - public static final String USE_SWAGGER_UI = "true"; - - public static final String USE_WADL_FEATURE = "true"; - - public static final String USE_MULTIPART_FEATURE = "true"; - - public static final String USE_GZIP_FEATURE = "true"; - - public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; - - public static final String USE_LOGGING_FEATURE = "true"; - - public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; - - public static final String USE_BEANVALIDATION_FEATURE = "true"; - - public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; - - public static final String GENERATE_SPRING_BOOT_APPLICATION = "true"; - - public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; - - public static final String IMPL_FOLDER_VALUE = "src/main/java"; - - @Override - public boolean isServer() { - return true; - } - - @Override - public String getLanguage() { - return "jaxrs-cxf"; - } - - @Override - public Map createOptions() { - - Map parentOptions = super.createOptions(); - - ImmutableMap.Builder builder = new ImmutableMap.Builder() - .putAll(parentOptions); - - builder.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE); - builder.put("title", "Test title"); - - builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION, JavaOptionsProvider.USE_BEANVALIDATION); - builder.put(JavaCXFServerCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); - - builder.put(JavaCXFServerCodegen.GENERATE_SPRING_APPLICATION, GENERATE_SPRING_APPLICATION); - builder.put(JavaCXFServerCodegen.USE_SPRING_ANNOTATION_CONFIG, USE_SPRING_ANNOTATION_CONFIG); - - builder.put(JavaCXFServerCodegen.USE_SWAGGER_FEATURE, USE_SWAGGER_FEATURE); - builder.put(JavaCXFServerCodegen.USE_SWAGGER_UI, USE_SWAGGER_UI); - - builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); - builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); - builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE, USE_GZIP_FEATURE); - builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); - builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE, USE_LOGGING_FEATURE); - builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); - builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION_FEATURE, USE_BEANVALIDATION_FEATURE); - - builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); - - builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); - - return builder.build(); - - } -} +package io.swagger.codegen.options; + +import java.util.Map; + +import com.google.common.collect.ImmutableMap; + +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.languages.JavaCXFServerCodegen; + +public class JavaCXFServerOptionsProvider extends JavaOptionsProvider { + + public static final String USE_JAXB_ANNOTATIONS = "true"; + + public static final String GENERATE_SPRING_APPLICATION = "true"; + + public static final String USE_SWAGGER_FEATURE = "true"; + + public static final String USE_SWAGGER_UI = "true"; + + public static final String USE_WADL_FEATURE = "true"; + + public static final String USE_MULTIPART_FEATURE = "true"; + + public static final String USE_GZIP_FEATURE = "true"; + + public static final String USE_GZIP_FEATURE_FOR_TESTS = "true"; + + public static final String USE_LOGGING_FEATURE = "true"; + + public static final String USE_LOGGING_FEATURE_FOR_TESTS = "true"; + + public static final String USE_BEANVALIDATION_FEATURE = "true"; + + public static final String USE_SPRING_ANNOTATION_CONFIG = "true"; + + public static final String GENERATE_SPRING_BOOT_APPLICATION = "true"; + + public static final String GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR = "true"; + + public static final String ADD_CONSUMES_PRODUCES_JSON = "true"; + + public static final String IMPL_FOLDER_VALUE = "src/main/java"; + + @Override + public boolean isServer() { + return true; + } + + @Override + public String getLanguage() { + return "jaxrs-cxf"; + } + + @Override + public Map createOptions() { + + Map parentOptions = super.createOptions(); + + ImmutableMap.Builder builder = new ImmutableMap.Builder() + .putAll(parentOptions); + + builder.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE); + builder.put("title", "Test title"); + + builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION, JavaOptionsProvider.USE_BEANVALIDATION); + builder.put(JavaCXFServerCodegen.USE_JAXB_ANNOTATIONS, USE_JAXB_ANNOTATIONS); + + builder.put(JavaCXFServerCodegen.GENERATE_SPRING_APPLICATION, GENERATE_SPRING_APPLICATION); + builder.put(JavaCXFServerCodegen.USE_SPRING_ANNOTATION_CONFIG, USE_SPRING_ANNOTATION_CONFIG); + + builder.put(JavaCXFServerCodegen.USE_SWAGGER_FEATURE, USE_SWAGGER_FEATURE); + builder.put(JavaCXFServerCodegen.USE_SWAGGER_UI, USE_SWAGGER_UI); + + builder.put(JavaCXFServerCodegen.USE_WADL_FEATURE, USE_WADL_FEATURE); + builder.put(JavaCXFServerCodegen.USE_MULTIPART_FEATURE, USE_MULTIPART_FEATURE); + builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE, USE_GZIP_FEATURE); + builder.put(JavaCXFServerCodegen.USE_GZIP_FEATURE_FOR_TESTS, USE_GZIP_FEATURE_FOR_TESTS); + builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE, USE_LOGGING_FEATURE); + builder.put(JavaCXFServerCodegen.USE_LOGGING_FEATURE_FOR_TESTS, USE_LOGGING_FEATURE_FOR_TESTS); + builder.put(JavaCXFServerCodegen.USE_BEANVALIDATION_FEATURE, USE_BEANVALIDATION_FEATURE); + + builder.put(JavaCXFServerCodegen.GENERATE_SPRING_BOOT_APPLICATION, GENERATE_SPRING_BOOT_APPLICATION); + + builder.put(JavaCXFServerCodegen.GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR, GENERATE_JBOSS_DEPLOYMENT_DESCRIPTOR); + + builder.put(JavaCXFServerCodegen.ADD_CONSUMES_PRODUCES_JSON, ADD_CONSUMES_PRODUCES_JSON); + + return builder.build(); + + } +} From 54b07f6baaf8994bf6ada118f8664d0436873e75 Mon Sep 17 00:00:00 2001 From: jfiala Date: Fri, 18 Nov 2016 23:19:40 +0100 Subject: [PATCH 42/42] add test case for outerEnum #4160 --- .../petstore-with-fake-endpoints-models-for-testing.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml b/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml index 4666a0cc167..fb075fcb5e5 100644 --- a/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml +++ b/modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml @@ -1074,6 +1074,9 @@ definitions: enum: - 1.1 - -1.2 + outerEnum: + type: string + $ref: '#/definitions/OuterEnum' AdditionalPropertiesClass: type: object properties: @@ -1228,6 +1231,12 @@ definitions: # enum: # - Cat # - Dog + OuterEnum: + type: "string" + enum: + - "placed" + - "approved" + - "delivered" externalDocs: description: Find out more about Swagger url: 'http://swagger.io'