From 00c1018d79d119e22fe2f1fe28d3e8db8b59d64e Mon Sep 17 00:00:00 2001 From: Wanny Date: Fri, 20 Mar 2015 13:45:01 -0700 Subject: [PATCH] add basi Springdox server generation --- .../languages/SpringdoxServerCodegen.java | 156 ++++++++++++++++++ .../JavaSpringdox/ApiException.mustache | 9 + .../JavaSpringdox/ApiOriginFilter.mustache | 26 +++ .../JavaSpringdox/ApiResponseMessage.mustache | 68 ++++++++ .../JavaSpringdox/NotFoundException.mustache | 9 + .../resources/JavaSpringdox/README.mustache | 28 ++++ .../JavaSpringdox/SwaggerConfig.mustache | 55 ++++++ .../main/resources/JavaSpringdox/api.mustache | 49 ++++++ .../JavaSpringdox/bodyParams.mustache | 1 + .../JavaSpringdox/formParams.mustache | 2 + .../JavaSpringdox/headerParams.mustache | 1 + .../resources/JavaSpringdox/model.mustache | 51 ++++++ .../JavaSpringdox/pathParams.mustache | 1 + .../main/resources/JavaSpringdox/pom.mustache | 144 ++++++++++++++++ .../JavaSpringdox/project/build.properties | 1 + .../JavaSpringdox/project/plugins.sbt | 9 + .../JavaSpringdox/queryParams.mustache | 1 + .../com.wordnik.swagger.codegen.CodegenConfig | 1 + 18 files changed, 612 insertions(+) create mode 100644 modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/SpringdoxServerCodegen.java create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiException.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiOriginFilter.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiResponseMessage.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/NotFoundException.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/README.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/SwaggerConfig.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/api.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/bodyParams.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/formParams.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/headerParams.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/model.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/pathParams.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/pom.mustache create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/project/build.properties create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/project/plugins.sbt create mode 100644 modules/swagger-codegen/src/main/resources/JavaSpringdox/queryParams.mustache diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/SpringdoxServerCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/SpringdoxServerCodegen.java new file mode 100644 index 00000000000..dc8d2f2a3e3 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/SpringdoxServerCodegen.java @@ -0,0 +1,156 @@ +package com.wordnik.swagger.codegen.languages; + +import com.wordnik.swagger.models.Operation; +import com.wordnik.swagger.models.Path; +import com.wordnik.swagger.util.Json; +import com.wordnik.swagger.codegen.*; +import com.wordnik.swagger.models.properties.*; + +import java.util.*; +import java.io.File; + +public class SpringdoxServerCodegen extends JavaClientCodegen implements CodegenConfig { + protected String invokerPackage = "com.concur.service.api"; + protected String groupId = "com.concur.service"; + protected String artifactId = "swagger-server"; + protected String artifactVersion = "1.0.0"; + protected String sourceFolder = "src/main/java"; + protected String title = "Concur Server"; + + protected String configPackage = ""; + + public CodegenType getTag() { + return CodegenType.SERVER; + } + + public String getName() { + return "springdox"; + } + + public String getHelp() { + return "Generates a Java SpringDox Server application."; + } + + public SpringdoxServerCodegen() { + super(); + outputFolder = "generated-code/javaSpringdox"; + modelTemplateFiles.put("model.mustache", ".java"); + apiTemplateFiles.put("api.mustache", ".java"); + templateDir = "JavaSpringdox"; + apiPackage = "com.concur.service.api"; + modelPackage = "com.concur.service.model"; + configPackage = "com.concur.service.configuration"; + + + additionalProperties.put("invokerPackage", invokerPackage); + additionalProperties.put("groupId", groupId); + additionalProperties.put("artifactId", artifactId); + additionalProperties.put("artifactVersion", artifactVersion); + additionalProperties.put("title", title); + + supportingFiles.clear(); + supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml")); + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + supportingFiles.add(new SupportingFile("ApiException.mustache", + (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator), "ApiException.java")); + supportingFiles.add(new SupportingFile("ApiOriginFilter.mustache", + (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator), "ApiOriginFilter.java")); + supportingFiles.add(new SupportingFile("ApiResponseMessage.mustache", + (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator), "ApiResponseMessage.java")); + supportingFiles.add(new SupportingFile("NotFoundException.mustache", + (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator), "NotFoundException.java")); + + + supportingFiles.add(new SupportingFile("SwaggerConfig.mustache", + (sourceFolder + File.separator + configPackage).replace(".", java.io.File.separator), "SwaggerConfig.java")); + + languageSpecificPrimitives = new HashSet( + Arrays.asList( + "String", + "boolean", + "Boolean", + "Double", + "Integer", + "Long", + "Float") + ); + } + + @Override + public String getTypeDeclaration(Property p) { + if(p instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) p; + Property inner = ap.getItems(); + return getSwaggerType(p) + "<" + getTypeDeclaration(inner) + ">"; + } + else if (p instanceof MapProperty) { + MapProperty mp = (MapProperty) p; + Property inner = mp.getAdditionalProperties(); + + return getTypeDeclaration(inner); + } + return super.getTypeDeclaration(p); + } + + @Override + public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map> operations) { + String basePath = resourcePath; + if(basePath.startsWith("/")) + basePath = basePath.substring(1); + int pos = basePath.indexOf("/"); + if(pos > 0) + basePath = basePath.substring(0, pos); + + if(basePath == "") + basePath = "default"; + else { + if(co.path.startsWith("/" + basePath)) + co.path = co.path.substring(("/" + basePath).length()); + co.subresourceOperation = !co.path.isEmpty(); + } + List opList = operations.get(basePath); + if(opList == null) { + opList = new ArrayList(); + operations.put(basePath, opList); + } + opList.add(co); + co.baseName = basePath; + } + + public Map postProcessOperations(Map objs) { + Map operations = (Map)objs.get("operations"); + if(operations != null) { + List ops = (List) operations.get("operation"); + for(CodegenOperation operation : ops) { + if(operation.returnType == null) + operation.returnType = "Void"; + else if(operation.returnType.startsWith("List")) { + String rt = operation.returnType; + int end = rt.lastIndexOf(">"); + if(end > 0) { + operation.returnType = rt.substring("List<".length(), end); + operation.returnContainer = "List"; + } + } + else if(operation.returnType.startsWith("Map")) { + String rt = operation.returnType; + int end = rt.lastIndexOf(">"); + if(end > 0) { + operation.returnType = rt.substring("Map<".length(), end); + operation.returnContainer = "Map"; + } + } + else if(operation.returnType.startsWith("Set")) { + String rt = operation.returnType; + int end = rt.lastIndexOf(">"); + if(end > 0) { + operation.returnType = rt.substring("Set<".length(), end); + operation.returnContainer = "Set"; + } + } + } + } + return objs; + } +} + diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiException.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiException.mustache new file mode 100644 index 00000000000..ffab3b1088e --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiException.mustache @@ -0,0 +1,9 @@ +package {{apiPackage}}; + +public class ApiException extends Exception{ + private int code; + public ApiException (int code, String msg) { + super(msg); + this.code = code; + } +} diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiOriginFilter.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiOriginFilter.mustache new file mode 100644 index 00000000000..68675432c64 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiOriginFilter.mustache @@ -0,0 +1,26 @@ +package {{apiPackage}}; + +import java.io.IOException; + +import javax.servlet.*; +import javax.servlet.http.HttpServletResponse; + +public class ApiOriginFilter implements javax.servlet.Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + HttpServletResponse res = (HttpServletResponse) response; + res.addHeader("Access-Control-Allow-Origin", "*"); + res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + res.addHeader("Access-Control-Allow-Headers", "Content-Type"); + chain.doFilter(request, response); + } + + @Override + public void destroy() { + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiResponseMessage.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiResponseMessage.mustache new file mode 100644 index 00000000000..94711b26efb --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/ApiResponseMessage.mustache @@ -0,0 +1,68 @@ +package {{apiPackage}}; + +import javax.xml.bind.annotation.XmlTransient; + +@javax.xml.bind.annotation.XmlRootElement +public class ApiResponseMessage { + public static final int ERROR = 1; + public static final int WARNING = 2; + public static final int INFO = 3; + public static final int OK = 4; + public static final int TOO_BUSY = 5; + + int code; + String type; + String message; + + public ApiResponseMessage(){} + + public ApiResponseMessage(int code, String message){ + this.code = code; + switch(code){ + case ERROR: + setType("error"); + break; + case WARNING: + setType("warning"); + break; + case INFO: + setType("info"); + break; + case OK: + setType("ok"); + break; + case TOO_BUSY: + setType("too busy"); + break; + default: + setType("unknown"); + break; + } + this.message = message; + } + + @XmlTransient + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/NotFoundException.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/NotFoundException.mustache new file mode 100644 index 00000000000..8ab2c99e4f8 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/NotFoundException.mustache @@ -0,0 +1,9 @@ +package {{apiPackage}}; + +public class NotFoundException extends ApiException { + private int code; + public NotFoundException (int code, String msg) { + super(code, msg); + this.code = code; + } +} diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/README.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/README.mustache new file mode 100644 index 00000000000..a1e68ac6672 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/README.mustache @@ -0,0 +1,28 @@ +# Swagger generated server + +Springdox + + +## Overview +This server was generated by the [swagger-codegen](https://github.com/wordnik/swagger-codegen) project. By using the +[swagger-spec](https://github.com/wordnik/swagger-core/wiki) from a remote server, you can easily generate a server stub. This +is an example of building a swagger-enabled scalatra server. + +This example uses the [Springdox](https://github.com/springdox/springdox) framework. To see how to make this your own, look here: + + +apiPackage->{{apiPackage}} + +api->{{apiTitle}} + +info->{{apiInfo}} + +version->{{apiVersion}} + + + +licenseUrl->{{licenseUrl}} +licenseInfo->{{licenseInfo}} +title->{{appName}} +description->{{appDescription}} + diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/SwaggerConfig.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/SwaggerConfig.mustache new file mode 100644 index 00000000000..81418e4a9ef --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/SwaggerConfig.mustache @@ -0,0 +1,55 @@ +package {{configPackage}}; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import springdox.documentation.swagger2.annotations.EnableSwagger2; +import springdox.documentation.spring.web.plugins.DocumentationConfigurer; + +import springdox.documentation.spi.DocumentationType; +import springdox.documentation.service.ApiInfo; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +import java.util.Set; + + +@Configuration +@EnableWebMvc +@EnableSwagger2 //Loads the spring beans required by the framework +public class SwaggerConfig { + +private DocumentationConfigurer documentationConfigurer; + + @Autowired + public void setDocumentationConfigurer(DocumentationConfigurer configurer){ + this.documentationConfigurer = documentationConfigurer; + } + + @Bean + ApiInfo apiInfo() { + ApiInfo apiInfo = new ApiInfo( + "{{appName}}", + "{{appDescription}}", + "1.0.0", + "My Apps API terms of service", + "{{infoEmail}}", + "{{licenseInfo}}", + "{{licenseUrl}}" ); + return apiInfo; + } + + @Bean + public DocumentationConfigurer customImplementation(){ + return new DocumentationConfigurer(DocumentationType.SWAGGER_2) + .groupName("default") + .includePatterns(".*replace {{appName}} with your api classes.*") + .apiInfo(apiInfo()); + } + + @Bean + ObjectMapper objectMapper() { return new ObjectMapper(); } + +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/api.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/api.mustache new file mode 100644 index 00000000000..7dacdbec419 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/api.mustache @@ -0,0 +1,49 @@ +package {{apiPackage}}; + +import {{modelPackage}}.*; + +import com.wordnik.swagger.annotations.*; + +import com.sun.jersey.multipart.FormDataParam; + +{{#imports}}import {{import}}; +{{/imports}} + +import java.util.List; +import {{package}}.NotFoundException; + +import java.io.InputStream; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import static org.springframework.http.MediaType.*; + +@Controller +@RequestMapping("/{{baseName}}",produces = {APPLICATION_JSON_VALUE}) +@Api(value = "/{{baseName}}", description = "the {{baseName}} API") +{{#operations}} +public class {{classname}} { + {{#operation}} + + {{#subresourceOperation}}@RequestMapping(value = {{path}}, method = RequestMethod.{{httpMethod}} ){{/subresourceOperation}} + {{#hasConsumes}}@Consumes({ {{#consumes}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}} + {{#hasProduces}}@Produces({ {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}} + @ApiOperation(value = "{{{summary}}}", notes = "{{{notes}}}", response = {{{returnType}}}.class{{#returnContainer}}, responseContainer = "{{{returnContainer}}}"{{/returnContainer}}) + @ApiResponses(value = { {{#responses}} + @ApiResponse(code = {{{code}}}, message = "{{{message}}}"){{#hasMore}}, + {{/hasMore}}{{/responses}} }) + + public Response {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, + {{/hasMore}}{{/allParams}}) + throws NotFoundException { + // do some magic! + return Response.ok().entity(new ApiResponseMessage(ApiResponseMessage.OK, "magic!")).build(); + } + + {{/operation}} +} +{{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/bodyParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/bodyParams.mustache new file mode 100644 index 00000000000..86546afb9ca --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/bodyParams.mustache @@ -0,0 +1 @@ +{{#isBodyParam}}@ApiParam(value = "{{{description}}}" {{#required}},required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{{dataType}}} {{paramName}}{{/isBodyParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/formParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/formParams.mustache new file mode 100644 index 00000000000..ba842165f3d --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/formParams.mustache @@ -0,0 +1,2 @@ +{{#isFormParam}}{{#notFile}}@ApiParam(value = "{{{description}}}"{{#required}}, required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}})@FormParam("{{paramName}}") {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@ApiParam(value = "{{{description}}}") @FormDataParam("file") InputStream inputStream, + @ApiParam(value = "file detail") @FormDataParam("file") FormDataContentDisposition fileDetail{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/headerParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/headerParams.mustache new file mode 100644 index 00000000000..0f88692ad1d --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/headerParams.mustache @@ -0,0 +1 @@ +{{#isHeaderParam}}@ApiParam(value = "{{{description}}}" {{#required}},required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}})@HeaderParam("{{paramName}}") {{{dataType}}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/model.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/model.mustache new file mode 100644 index 00000000000..48da4b2c7ff --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/model.mustache @@ -0,0 +1,51 @@ +package {{package}}; + +{{#imports}}import {{import}}; +{{/imports}} + +import com.wordnik.swagger.annotations.*; +import com.fasterxml.jackson.annotation.JsonProperty; +{{#models}} + +{{#model}}{{#description}} +/** + * {{description}} + **/{{/description}} +@ApiModel(description = "{{{description}}}") +public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { + {{#vars}}{{#isEnum}} + public enum {{datatypeWithEnum}} { + {{#allowableValues}}{{#values}} {{.}}, {{/values}}{{/allowableValues}} + }; + private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/isEnum}}{{^isEnum}} + private {{{datatype}}} {{name}} = {{{defaultValue}}};{{/isEnum}}{{/vars}} + + {{#vars}} + /**{{#description}} + * {{{description}}}{{/description}}{{#minimum}} + * minimum: {{minimum}}{{/minimum}}{{#maximum}} + * maximum: {{maximum}}{{/maximum}} + **/ + @ApiModelProperty(required = {{required}}, value = "{{{description}}}") + @JsonProperty("{{name}}") + public {{{datatypeWithEnum}}} {{getter}}() { + return {{name}}; + } + public void {{setter}}({{{datatypeWithEnum}}} {{name}}) { + this.{{name}} = {{name}}; + } + + {{/vars}} + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class {{classname}} {\n"); + {{#parent}}sb.append(" " + super.toString()).append("\n");{{/parent}} + {{#vars}}sb.append(" {{name}}: ").append({{name}}).append("\n"); + {{/vars}}sb.append("}\n"); + return sb.toString(); + } +} +{{/model}} +{{/models}} diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/pathParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/pathParams.mustache new file mode 100644 index 00000000000..1f1b30887a4 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/pathParams.mustache @@ -0,0 +1 @@ +{{#isPathParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}} {{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) @PathParam("{{paramName}}") {{{dataType}}} {{paramName}}{{/isPathParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/pom.mustache new file mode 100644 index 00000000000..9ead2787b3c --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/pom.mustache @@ -0,0 +1,144 @@ + + 4.0.0 + {{groupId}} + {{artifactId}} + jar + {{artifactId}} + {{artifactVersion}} + + src/main/java + + + org.apache.maven.plugins + maven-war-plugin + 2.1.1 + + + maven-failsafe-plugin + 2.6 + + + + integration-test + verify + + + + + + org.mortbay.jetty + jetty-maven-plugin + ${jetty-version} + + + {{^contextPath}}/{{/contextPath}}{{#contextPath}}{{contextPath}}{{/contextPath}} + + target/${project.artifactId}-${project.version} + ${project.basedir}/conf/jetty/webdefault.xml + 8079 + stopit + + + 8002 + 60000 + 8443 + + + + + + start-jetty + pre-integration-test + + run + + + 0 + true + + + + stop-jetty + post-integration-test + + stop + + + + + + + + + com.wordnik + swagger-jersey-jaxrs + ${swagger-core-version} + + + org.slf4j + slf4j-log4j12 + ${slf4j-version} + + + com.sun.jersey + jersey-core + ${jersey-version} + + + com.sun.jersey + jersey-json + ${jersey-version} + + + com.sun.jersey + jersey-servlet + ${jersey-version} + + + com.sun.jersey.contribs + jersey-multipart + ${jersey-version} + + + com.sun.jersey + jersey-server + ${jersey-version} + + + + org.scalatest + scalatest_2.9.1 + ${scala-test-version} + test + + + junit + junit + ${junit-version} + test + + + javax.servlet + servlet-api + ${servlet-api-version} + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + 1.5.3-M1-SNAPSHOT + 8.1.11.v20130520 + 1.13 + 1.6.3 + 1.6.1 + 4.8.1 + 2.5 + + \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/build.properties b/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/build.properties new file mode 100644 index 00000000000..a8c2f849be3 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/build.properties @@ -0,0 +1 @@ +sbt.version=0.12.0 diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/plugins.sbt b/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/plugins.sbt new file mode 100644 index 00000000000..713b7f3e993 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/project/plugins.sbt @@ -0,0 +1,9 @@ +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.4") + +libraryDependencies <+= sbtVersion(v => v match { + case "0.11.0" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.0-0.2.8" + case "0.11.1" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.1-0.2.10" + case "0.11.2" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.2-0.2.11" + case "0.11.3" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.3-0.2.11.1" + case x if (x.startsWith("0.12")) => "com.github.siasia" %% "xsbt-web-plugin" % "0.12.0-0.2.11.1" +}) \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringdox/queryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringdox/queryParams.mustache new file mode 100644 index 00000000000..b9e80e5a7e7 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/JavaSpringdox/queryParams.mustache @@ -0,0 +1 @@ +{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}},required=true{{/required}}{{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) @QueryParam("{{paramName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/META-INF/services/com.wordnik.swagger.codegen.CodegenConfig b/modules/swagger-codegen/src/main/resources/META-INF/services/com.wordnik.swagger.codegen.CodegenConfig index 8aa08f9599d..64298e10a6f 100644 --- a/modules/swagger-codegen/src/main/resources/META-INF/services/com.wordnik.swagger.codegen.CodegenConfig +++ b/modules/swagger-codegen/src/main/resources/META-INF/services/com.wordnik.swagger.codegen.CodegenConfig @@ -2,6 +2,7 @@ com.wordnik.swagger.codegen.languages.AndroidClientCodegen com.wordnik.swagger.codegen.languages.AsyncScalaClientCodegen com.wordnik.swagger.codegen.languages.JavaClientCodegen com.wordnik.swagger.codegen.languages.JaxRSServerCodegen +com.wordnik.swagger.codegen.languages.SpringdoxServerCodegen com.wordnik.swagger.codegen.languages.NodeJSServerCodegen com.wordnik.swagger.codegen.languages.ObjcClientCodegen com.wordnik.swagger.codegen.languages.ScalatraServerCodegen