From 1e57ba96d7ef53d94216454b4c79ca278557347a Mon Sep 17 00:00:00 2001 From: wing328 Date: Mon, 17 Oct 2016 00:48:14 +0800 Subject: [PATCH 01/12] Correct source folder for generated files --- .../swagger/codegen/plugin/CodeGenMojo.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java index fabd2947298..aca8bbf673c 100644 --- a/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java +++ b/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java @@ -16,11 +16,17 @@ package io.swagger.codegen.plugin; * limitations under the License. */ -import io.swagger.codegen.CliOption; -import io.swagger.codegen.ClientOptInput; -import io.swagger.codegen.CodegenConfig; -import io.swagger.codegen.DefaultGenerator; -import io.swagger.codegen.config.CodegenConfigurator; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyAdditionalPropertiesKvp; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyImportMappingsKvp; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyInstantiationTypesKvp; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyLanguageSpecificPrimitivesCsv; +import static io.swagger.codegen.config.CodegenConfiguratorUtils.applyTypeMappingsKvp; +import static org.apache.commons.lang3.StringUtils.isNotEmpty; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.LifecyclePhase; @@ -28,12 +34,12 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -import static io.swagger.codegen.config.CodegenConfiguratorUtils.*; -import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import io.swagger.codegen.CliOption; +import io.swagger.codegen.ClientOptInput; +import io.swagger.codegen.CodegenConfig; +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.DefaultGenerator; +import io.swagger.codegen.config.CodegenConfigurator; /** * Goal which generates client/server code from a swagger json/yaml definition. @@ -304,7 +310,8 @@ public class CodeGenMojo extends AbstractMojo { } if (addCompileSourceRoot) { - project.addCompileSourceRoot(output.toString()); + String sourceJavaFolder = output.toString() + "/" + configOptions.get(CodegenConstants.SOURCE_FOLDER); + project.addCompileSourceRoot(sourceJavaFolder); } } } From c70a2a7481b34362657546e6ca0f4a41ff1c44b3 Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Sun, 16 Oct 2016 18:33:33 -0400 Subject: [PATCH 02/12] [aspnetcore] Deprecating aspnet5 for aspnetcore This moves previous aspnet5 functionality to aspnetcore, aspnet5 now derives from the aspnetcore generator and logs a warning that it's deprecated. This will help resolve any confusion because ASP.NET 5 is terminology referring to the project of around a year ago. ASP.NET Core 1.0 is the new name for the technology, and further enhancements should target .NET Core 1.0 rather than any old vNext or preview stuff. --- .gitignore | 4 +- README.md | 1 + ...erver.sh => aspnetcore-petstore-server.sh} | 2 +- ...ver.bat => aspnetcore-petstore-server.bat} | 2 +- .../languages/AspNet5ServerCodegen.java | 121 +-------------- .../languages/AspNetCoreServerCodegen.java | 144 ++++++++++++++++++ .../services/io.swagger.codegen.CodegenConfig | 1 + .../Dockerfile.mustache | 0 .../{aspnet5 => aspnetcore}/NuGet.Config | 0 .../{aspnet5 => aspnetcore}/Program.mustache | 0 .../Project.xproj.mustache | 0 .../Properties/launchSettings.json | 0 .../{aspnet5 => aspnetcore}/README.mustache | 0 .../{aspnet5 => aspnetcore}/Solution.mustache | 0 .../{aspnet5 => aspnetcore}/Startup.mustache | 0 .../{aspnet5 => aspnetcore}/appsettings.json | 0 .../bodyParam.mustache | 0 .../build.bat.mustache | 0 .../{aspnet5 => aspnetcore}/build.sh.mustache | 0 .../controller.mustache | 0 .../formParam.mustache | 0 .../{aspnet5 => aspnetcore}/gitignore | 0 .../{aspnet5 => aspnetcore}/global.json | 0 .../headerParam.mustache | 0 .../listReturn.mustache | 0 .../mapReturn.mustache | 0 .../{aspnet5 => aspnetcore}/model.mustache | 0 .../objectReturn.mustache | 0 .../partial_header.mustache | 0 .../pathParam.mustache | 0 .../project.json.mustache | 0 .../queryParam.mustache | 0 .../{aspnet5 => aspnetcore}/tags.mustache | 0 .../{aspnet5 => aspnetcore}/web.config | 0 .../{aspnet5 => aspnetcore}/wwwroot/README.md | 0 .../wwwroot/index.html | 0 .../wwwroot/web.config | 0 .../AspNetCoreServerOptionsTest.java} | 20 +-- ...a => AspNetCoreServerOptionsProvider.java} | 8 +- .../.swagger-codegen-ignore | 0 .../{aspnet5 => aspnetcore}/IO.Swagger.sln | 0 .../petstore/{aspnet5 => aspnetcore}/LICENSE | 0 .../{aspnet5 => aspnetcore}/NuGet.Config | 0 .../{aspnet5 => aspnetcore}/README.md | 0 .../{aspnet5 => aspnetcore}/build.bat | 0 .../petstore/{aspnet5 => aspnetcore}/build.sh | 0 .../{aspnet5 => aspnetcore}/global.json | 0 .../src/IO.Swagger/.gitignore | 0 .../src/IO.Swagger/Controllers/PetApi.cs | 0 .../src/IO.Swagger/Controllers/StoreApi.cs | 0 .../src/IO.Swagger/Controllers/UserApi.cs | 0 .../src/IO.Swagger/Dockerfile | 0 .../src/IO.Swagger/IO.Swagger.xproj | 0 .../src/IO.Swagger/Models/ApiResponse.cs | 0 .../src/IO.Swagger/Models/Category.cs | 0 .../src/IO.Swagger/Models/Order.cs | 0 .../src/IO.Swagger/Models/Pet.cs | 0 .../src/IO.Swagger/Models/Tag.cs | 0 .../src/IO.Swagger/Models/User.cs | 0 .../src/IO.Swagger/Program.cs | 0 .../IO.Swagger/Properties/launchSettings.json | 0 .../src/IO.Swagger/Startup.cs | 0 .../src/IO.Swagger/appsettings.json | 0 .../src/IO.Swagger/project.json | 0 .../src/IO.Swagger/web.config | 0 .../src/IO.Swagger/wwwroot/README.md | 0 .../src/IO.Swagger/wwwroot/index.html | 0 .../src/IO.Swagger/wwwroot/web.config | 0 68 files changed, 166 insertions(+), 137 deletions(-) rename bin/{aspnet5-petstore-server.sh => aspnetcore-petstore-server.sh} (83%) rename bin/windows/{aspnet5-petstore-server.bat => aspnetcore-petstore-server.bat} (81%) create mode 100644 modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Dockerfile.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/NuGet.Config (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Program.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Project.xproj.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Properties/launchSettings.json (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/README.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Solution.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/Startup.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/appsettings.json (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/bodyParam.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/build.bat.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/build.sh.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/controller.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/formParam.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/gitignore (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/global.json (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/headerParam.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/listReturn.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/mapReturn.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/model.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/objectReturn.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/partial_header.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/pathParam.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/project.json.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/queryParam.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/tags.mustache (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/web.config (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/wwwroot/README.md (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/wwwroot/index.html (100%) rename modules/swagger-codegen/src/main/resources/{aspnet5 => aspnetcore}/wwwroot/web.config (100%) rename modules/swagger-codegen/src/test/java/io/swagger/codegen/{aspnet5/AspNet5ServerOptionsTest.java => aspnetcore/AspNetCoreServerOptionsTest.java} (51%) rename modules/swagger-codegen/src/test/java/io/swagger/codegen/options/{AspNet5ServerOptionsProvider.java => AspNetCoreServerOptionsProvider.java} (90%) rename samples/server/petstore/{aspnet5 => aspnetcore}/.swagger-codegen-ignore (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/IO.Swagger.sln (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/LICENSE (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/NuGet.Config (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/README.md (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/build.bat (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/build.sh (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/global.json (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/.gitignore (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Controllers/PetApi.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Controllers/StoreApi.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Controllers/UserApi.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Dockerfile (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/IO.Swagger.xproj (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/ApiResponse.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/Category.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/Order.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/Pet.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/Tag.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Models/User.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Program.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Properties/launchSettings.json (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/Startup.cs (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/appsettings.json (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/project.json (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/web.config (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/wwwroot/README.md (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/wwwroot/index.html (100%) rename samples/server/petstore/{aspnet5 => aspnetcore}/src/IO.Swagger/wwwroot/web.config (100%) diff --git a/.gitignore b/.gitignore index 6f2eef3cee8..0ee7754ae53 100644 --- a/.gitignore +++ b/.gitignore @@ -143,6 +143,6 @@ samples/client/petstore/typescript-angular/**/typings samples/client/petstore/typescript-fetch/**/dist/ samples/client/petstore/typescript-fetch/**/typings -# aspnet5 -samples/server/petstore/aspnet5/.vs/ +# aspnetcore +samples/server/petstore/aspnetcore/.vs/ diff --git a/README.md b/README.md index cdd13d0274d..d9f7e365ad8 100644 --- a/README.md +++ b/README.md @@ -450,6 +450,7 @@ AbstractTypeScriptClientCodegen.java AkkaScalaClientCodegen.java AndroidClientCodegen.java AspNet5ServerCodegen.java +AspNetCoreServerCodegen.java AsyncScalaClientCodegen.java CSharpClientCodegen.java ClojureClientCodegen.java diff --git a/bin/aspnet5-petstore-server.sh b/bin/aspnetcore-petstore-server.sh similarity index 83% rename from bin/aspnet5-petstore-server.sh rename to bin/aspnetcore-petstore-server.sh index 4481b4b318f..1bb0c4f4e80 100755 --- a/bin/aspnet5-petstore-server.sh +++ b/bin/aspnetcore-petstore-server.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -l aspnet5 -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/aspnet5" +ags="$@ generate -l aspnetcore -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml -o samples/server/petstore/aspnetcore" java $JAVA_OPTS -jar $executable $ags diff --git a/bin/windows/aspnet5-petstore-server.bat b/bin/windows/aspnetcore-petstore-server.bat similarity index 81% rename from bin/windows/aspnet5-petstore-server.bat rename to bin/windows/aspnetcore-petstore-server.bat index 0823553857b..c2f5042cf6a 100755 --- a/bin/windows/aspnet5-petstore-server.bat +++ b/bin/windows/aspnetcore-petstore-server.bat @@ -5,6 +5,6 @@ If Not Exist %executable% ( ) REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties -set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l aspnet5 -o samples\server\petstore\aspnet5\ +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l aspnetcore -o samples\server\petstore\aspnetcore\ java %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNet5ServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNet5ServerCodegen.java index e98c1441254..d22e18f2cd0 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNet5ServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNet5ServerCodegen.java @@ -1,74 +1,15 @@ package io.swagger.codegen.languages; -import io.swagger.codegen.*; -import io.swagger.models.properties.*; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.util.*; - -import static java.util.UUID.randomUUID; - -public class AspNet5ServerCodegen extends AbstractCSharpCodegen { - - protected String sourceFolder = "src" + File.separator + packageName; - - private final String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}"; +public class AspNet5ServerCodegen extends AspNetCoreServerCodegen { @SuppressWarnings("hiding") protected Logger LOGGER = LoggerFactory.getLogger(AspNet5ServerCodegen.class); public AspNet5ServerCodegen() { super(); - - outputFolder = "generated-code" + File.separator + this.getName(); - - modelTemplateFiles.put("model.mustache", ".cs"); - apiTemplateFiles.put("controller.mustache", ".cs"); - - // contextually reserved words - setReservedWordsLowerCase( - Arrays.asList("var", "async", "await", "dynamic", "yield") - ); - - cliOptions.clear(); - - // CLI options - addOption(CodegenConstants.PACKAGE_NAME, - "C# package name (convention: Title.Case).", - this.packageName); - - addOption(CodegenConstants.PACKAGE_VERSION, - "C# package version.", - this.packageVersion); - - addOption(CodegenConstants.SOURCE_FOLDER, - CodegenConstants.SOURCE_FOLDER_DESC, - sourceFolder); - - // CLI Switches - addSwitch(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, - CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC, - this.sortParamsByRequiredFlag); - - addSwitch(CodegenConstants.USE_DATETIME_OFFSET, - CodegenConstants.USE_DATETIME_OFFSET_DESC, - this.useDateTimeOffsetFlag); - - addSwitch(CodegenConstants.USE_COLLECTION, - CodegenConstants.USE_COLLECTION_DESC, - this.useCollection); - - addSwitch(CodegenConstants.RETURN_ICOLLECTION, - CodegenConstants.RETURN_ICOLLECTION_DESC, - this.returnICollection); - } - - @Override - public CodegenType getTag() { - return CodegenType.SERVER; } @Override @@ -76,68 +17,10 @@ public class AspNet5ServerCodegen extends AbstractCSharpCodegen { return "aspnet5"; } - @Override - public String getHelp() { - return "Generates an ASP.NET 5 Web API server."; - } - @Override public void processOpts() { super.processOpts(); - additionalProperties.put("packageGuid", packageGuid); - - apiPackage = packageName + ".Controllers"; - modelPackage = packageName + ".Models"; - - supportingFiles.add(new SupportingFile("NuGet.Config", "", "NuGet.Config")); - supportingFiles.add(new SupportingFile("global.json", "", "global.json")); - supportingFiles.add(new SupportingFile("build.sh.mustache", "", "build.sh")); - supportingFiles.add(new SupportingFile("build.bat.mustache", "", "build.bat")); - supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); - supportingFiles.add(new SupportingFile("Solution.mustache", "", this.packageName + ".sln")); - supportingFiles.add(new SupportingFile("Dockerfile.mustache", this.sourceFolder, "Dockerfile")); - supportingFiles.add(new SupportingFile("gitignore", this.sourceFolder, ".gitignore")); - supportingFiles.add(new SupportingFile("appsettings.json", this.sourceFolder, "appsettings.json")); - - supportingFiles.add(new SupportingFile("project.json.mustache", this.sourceFolder, "project.json")); - supportingFiles.add(new SupportingFile("Startup.mustache", this.sourceFolder, "Startup.cs")); - supportingFiles.add(new SupportingFile("Program.mustache", this.sourceFolder, "Program.cs")); - supportingFiles.add(new SupportingFile("web.config", this.sourceFolder, "web.config")); - - supportingFiles.add(new SupportingFile("Project.xproj.mustache", this.sourceFolder, this.packageName + ".xproj")); - - supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", this.sourceFolder + File.separator + "Properties", "launchSettings.json")); - - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "README.md", this.sourceFolder + File.separator + "wwwroot", "README.md")); - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "index.html", this.sourceFolder + File.separator + "wwwroot", "index.html")); - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "web.config", this.sourceFolder + File.separator + "wwwroot", "web.config")); - } - - @Override - public String apiFileFolder() { - return outputFolder + File.separator + sourceFolder + File.separator + "Controllers"; - } - - @Override - public String modelFileFolder() { - return outputFolder + File.separator + sourceFolder + File.separator + "Models"; - } - - @Override - protected void processOperation(CodegenOperation operation) { - super.processOperation(operation); - - // HACK: Unlikely in the wild, but we need to clean operation paths for MVC Routing - if (operation.path != null) { - String original = operation.path; - operation.path = operation.path.replace("?", "/"); - if (!original.equals(operation.path)) { - LOGGER.warn("Normalized " + original + " to " + operation.path + ". Please verify generated source."); - } - } - - // Converts, for example, PUT to HttpPut for controller attributes - operation.httpMethod = "Http" + operation.httpMethod.substring(0, 1) + operation.httpMethod.substring(1).toLowerCase(); + LOGGER.warn("aspnet5 is deprecated. Please use aspnetcore."); } } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java new file mode 100644 index 00000000000..2045a249d97 --- /dev/null +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java @@ -0,0 +1,144 @@ +package io.swagger.codegen.languages; + +import io.swagger.codegen.CodegenConstants; +import io.swagger.codegen.CodegenOperation; +import io.swagger.codegen.CodegenType; +import io.swagger.codegen.SupportingFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.Arrays; + +import static java.util.UUID.randomUUID; + +public class AspNetCoreServerCodegen extends AbstractCSharpCodegen { + + protected String sourceFolder = "src" + File.separator + packageName; + + private final String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}"; + + @SuppressWarnings("hiding") + protected Logger LOGGER = LoggerFactory.getLogger(AspNetCoreServerCodegen.class); + + public AspNetCoreServerCodegen() { + super(); + + outputFolder = "generated-code" + File.separator + this.getName(); + + modelTemplateFiles.put("model.mustache", ".cs"); + apiTemplateFiles.put("controller.mustache", ".cs"); + + // contextually reserved words + setReservedWordsLowerCase( + Arrays.asList("var", "async", "await", "dynamic", "yield") + ); + + cliOptions.clear(); + + // CLI options + addOption(CodegenConstants.PACKAGE_NAME, + "C# package name (convention: Title.Case).", + this.packageName); + + addOption(CodegenConstants.PACKAGE_VERSION, + "C# package version.", + this.packageVersion); + + addOption(CodegenConstants.SOURCE_FOLDER, + CodegenConstants.SOURCE_FOLDER_DESC, + sourceFolder); + + // CLI Switches + addSwitch(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, + CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG_DESC, + this.sortParamsByRequiredFlag); + + addSwitch(CodegenConstants.USE_DATETIME_OFFSET, + CodegenConstants.USE_DATETIME_OFFSET_DESC, + this.useDateTimeOffsetFlag); + + addSwitch(CodegenConstants.USE_COLLECTION, + CodegenConstants.USE_COLLECTION_DESC, + this.useCollection); + + addSwitch(CodegenConstants.RETURN_ICOLLECTION, + CodegenConstants.RETURN_ICOLLECTION_DESC, + this.returnICollection); + } + + @Override + public CodegenType getTag() { + return CodegenType.SERVER; + } + + @Override + public String getName() { + return "aspnetcore"; + } + + @Override + public String getHelp() { + return "Generates an ASP.NET Core Web API server."; + } + + @Override + public void processOpts() { + super.processOpts(); + + additionalProperties.put("packageGuid", packageGuid); + + apiPackage = packageName + ".Controllers"; + modelPackage = packageName + ".Models"; + + supportingFiles.add(new SupportingFile("NuGet.Config", "", "NuGet.Config")); + supportingFiles.add(new SupportingFile("global.json", "", "global.json")); + supportingFiles.add(new SupportingFile("build.sh.mustache", "", "build.sh")); + supportingFiles.add(new SupportingFile("build.bat.mustache", "", "build.bat")); + supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); + supportingFiles.add(new SupportingFile("Solution.mustache", "", this.packageName + ".sln")); + supportingFiles.add(new SupportingFile("Dockerfile.mustache", this.sourceFolder, "Dockerfile")); + supportingFiles.add(new SupportingFile("gitignore", this.sourceFolder, ".gitignore")); + supportingFiles.add(new SupportingFile("appsettings.json", this.sourceFolder, "appsettings.json")); + + supportingFiles.add(new SupportingFile("project.json.mustache", this.sourceFolder, "project.json")); + supportingFiles.add(new SupportingFile("Startup.mustache", this.sourceFolder, "Startup.cs")); + supportingFiles.add(new SupportingFile("Program.mustache", this.sourceFolder, "Program.cs")); + supportingFiles.add(new SupportingFile("web.config", this.sourceFolder, "web.config")); + + supportingFiles.add(new SupportingFile("Project.xproj.mustache", this.sourceFolder, this.packageName + ".xproj")); + + supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", this.sourceFolder + File.separator + "Properties", "launchSettings.json")); + + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "README.md", this.sourceFolder + File.separator + "wwwroot", "README.md")); + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "index.html", this.sourceFolder + File.separator + "wwwroot", "index.html")); + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "web.config", this.sourceFolder + File.separator + "wwwroot", "web.config")); + } + + @Override + public String apiFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + "Controllers"; + } + + @Override + public String modelFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + "Models"; + } + + @Override + protected void processOperation(CodegenOperation operation) { + super.processOperation(operation); + + // HACK: Unlikely in the wild, but we need to clean operation paths for MVC Routing + if (operation.path != null) { + String original = operation.path; + operation.path = operation.path.replace("?", "/"); + if (!original.equals(operation.path)) { + LOGGER.warn("Normalized " + original + " to " + operation.path + ". Please verify generated source."); + } + } + + // Converts, for example, PUT to HttpPut for controller attributes + operation.httpMethod = "Http" + operation.httpMethod.substring(0, 1) + operation.httpMethod.substring(1).toLowerCase(); + } +} diff --git a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig index cd4d09c2150..7f2c3ec6642 100644 --- a/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig +++ b/modules/swagger-codegen/src/main/resources/META-INF/services/io.swagger.codegen.CodegenConfig @@ -1,5 +1,6 @@ io.swagger.codegen.languages.AndroidClientCodegen io.swagger.codegen.languages.AspNet5ServerCodegen +io.swagger.codegen.languages.AspNetCoreServerCodegen io.swagger.codegen.languages.AsyncScalaClientCodegen io.swagger.codegen.languages.ConfluenceWikiGenerator io.swagger.codegen.languages.CSharpClientCodegen diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Dockerfile.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Dockerfile.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Dockerfile.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/Dockerfile.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/NuGet.Config b/modules/swagger-codegen/src/main/resources/aspnetcore/NuGet.Config similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/NuGet.Config rename to modules/swagger-codegen/src/main/resources/aspnetcore/NuGet.Config diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Program.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Program.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Project.xproj.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Project.xproj.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Properties/launchSettings.json b/modules/swagger-codegen/src/main/resources/aspnetcore/Properties/launchSettings.json similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Properties/launchSettings.json rename to modules/swagger-codegen/src/main/resources/aspnetcore/Properties/launchSettings.json diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/README.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/README.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Solution.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Solution.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/Startup.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/Startup.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/appsettings.json b/modules/swagger-codegen/src/main/resources/aspnetcore/appsettings.json similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/appsettings.json rename to modules/swagger-codegen/src/main/resources/aspnetcore/appsettings.json diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/bodyParam.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/bodyParam.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/bodyParam.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/bodyParam.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/build.bat.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/build.bat.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/build.sh.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/build.sh.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/controller.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/controller.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/controller.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/controller.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/formParam.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/formParam.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/formParam.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/formParam.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/gitignore b/modules/swagger-codegen/src/main/resources/aspnetcore/gitignore similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/gitignore rename to modules/swagger-codegen/src/main/resources/aspnetcore/gitignore diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/global.json b/modules/swagger-codegen/src/main/resources/aspnetcore/global.json similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/global.json rename to modules/swagger-codegen/src/main/resources/aspnetcore/global.json diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/headerParam.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/headerParam.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/headerParam.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/headerParam.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/listReturn.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/listReturn.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/listReturn.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/listReturn.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/mapReturn.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/mapReturn.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/mapReturn.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/mapReturn.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/model.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/model.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/model.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/model.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/objectReturn.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/objectReturn.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/objectReturn.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/objectReturn.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/partial_header.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/partial_header.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/partial_header.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/partial_header.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/pathParam.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/pathParam.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/pathParam.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/pathParam.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/project.json.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/project.json.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/queryParam.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/queryParam.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/queryParam.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/queryParam.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/tags.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/tags.mustache similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/tags.mustache rename to modules/swagger-codegen/src/main/resources/aspnetcore/tags.mustache diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/web.config b/modules/swagger-codegen/src/main/resources/aspnetcore/web.config similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/web.config rename to modules/swagger-codegen/src/main/resources/aspnetcore/web.config diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/README.md b/modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/README.md similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/README.md rename to modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/README.md diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/index.html b/modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/index.html similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/index.html rename to modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/index.html diff --git a/modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/web.config b/modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/web.config similarity index 100% rename from modules/swagger-codegen/src/main/resources/aspnet5/wwwroot/web.config rename to modules/swagger-codegen/src/main/resources/aspnetcore/wwwroot/web.config diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnet5/AspNet5ServerOptionsTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnetcore/AspNetCoreServerOptionsTest.java similarity index 51% rename from modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnet5/AspNet5ServerOptionsTest.java rename to modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnetcore/AspNetCoreServerOptionsTest.java index f42eee01fe0..befeb4f1865 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnet5/AspNet5ServerOptionsTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/aspnetcore/AspNetCoreServerOptionsTest.java @@ -1,19 +1,19 @@ -package io.swagger.codegen.aspnet5; +package io.swagger.codegen.aspnetcore; import io.swagger.codegen.AbstractOptionsTest; import io.swagger.codegen.CodegenConfig; -import io.swagger.codegen.languages.AspNet5ServerCodegen; -import io.swagger.codegen.options.AspNet5ServerOptionsProvider; +import io.swagger.codegen.languages.AspNetCoreServerCodegen; +import io.swagger.codegen.options.AspNetCoreServerOptionsProvider; import mockit.Expectations; import mockit.Tested; -public class AspNet5ServerOptionsTest extends AbstractOptionsTest { +public class AspNetCoreServerOptionsTest extends AbstractOptionsTest { @Tested - private AspNet5ServerCodegen serverCodegen; + private AspNetCoreServerCodegen serverCodegen; - public AspNet5ServerOptionsTest() { - super(new AspNet5ServerOptionsProvider()); + public AspNetCoreServerOptionsTest() { + super(new AspNetCoreServerOptionsProvider()); } @Override @@ -25,11 +25,11 @@ public class AspNet5ServerOptionsTest extends AbstractOptionsTest { @Override protected void setExpectations() { new Expectations(serverCodegen) {{ - serverCodegen.setPackageName(AspNet5ServerOptionsProvider.PACKAGE_NAME_VALUE); + serverCodegen.setPackageName(AspNetCoreServerOptionsProvider.PACKAGE_NAME_VALUE); times = 1; - serverCodegen.setPackageVersion(AspNet5ServerOptionsProvider.PACKAGE_VERSION_VALUE); + serverCodegen.setPackageVersion(AspNetCoreServerOptionsProvider.PACKAGE_VERSION_VALUE); times = 1; - serverCodegen.setSourceFolder(AspNet5ServerOptionsProvider.SOURCE_FOLDER_VALUE); + serverCodegen.setSourceFolder(AspNetCoreServerOptionsProvider.SOURCE_FOLDER_VALUE); times = 1; serverCodegen.useDateTimeOffset(true); times = 1; diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNet5ServerOptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNetCoreServerOptionsProvider.java similarity index 90% rename from modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNet5ServerOptionsProvider.java rename to modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNetCoreServerOptionsProvider.java index 962fc1182d3..f4c58fd7124 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNet5ServerOptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/AspNetCoreServerOptionsProvider.java @@ -5,14 +5,14 @@ import io.swagger.codegen.CodegenConstants; import java.util.Map; -public class AspNet5ServerOptionsProvider implements OptionsProvider { - public static final String PACKAGE_NAME_VALUE = "swagger_server_aspnet5"; +public class AspNetCoreServerOptionsProvider implements OptionsProvider { + public static final String PACKAGE_NAME_VALUE = "swagger_server_aspnetcore"; public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT"; - public static final String SOURCE_FOLDER_VALUE = "src_aspnet5"; + public static final String SOURCE_FOLDER_VALUE = "src_aspnetcore"; @Override public String getLanguage() { - return "aspnet5"; + return "aspnetcore"; } @Override diff --git a/samples/server/petstore/aspnet5/.swagger-codegen-ignore b/samples/server/petstore/aspnetcore/.swagger-codegen-ignore similarity index 100% rename from samples/server/petstore/aspnet5/.swagger-codegen-ignore rename to samples/server/petstore/aspnetcore/.swagger-codegen-ignore diff --git a/samples/server/petstore/aspnet5/IO.Swagger.sln b/samples/server/petstore/aspnetcore/IO.Swagger.sln similarity index 100% rename from samples/server/petstore/aspnet5/IO.Swagger.sln rename to samples/server/petstore/aspnetcore/IO.Swagger.sln diff --git a/samples/server/petstore/aspnet5/LICENSE b/samples/server/petstore/aspnetcore/LICENSE similarity index 100% rename from samples/server/petstore/aspnet5/LICENSE rename to samples/server/petstore/aspnetcore/LICENSE diff --git a/samples/server/petstore/aspnet5/NuGet.Config b/samples/server/petstore/aspnetcore/NuGet.Config similarity index 100% rename from samples/server/petstore/aspnet5/NuGet.Config rename to samples/server/petstore/aspnetcore/NuGet.Config diff --git a/samples/server/petstore/aspnet5/README.md b/samples/server/petstore/aspnetcore/README.md similarity index 100% rename from samples/server/petstore/aspnet5/README.md rename to samples/server/petstore/aspnetcore/README.md diff --git a/samples/server/petstore/aspnet5/build.bat b/samples/server/petstore/aspnetcore/build.bat similarity index 100% rename from samples/server/petstore/aspnet5/build.bat rename to samples/server/petstore/aspnetcore/build.bat diff --git a/samples/server/petstore/aspnet5/build.sh b/samples/server/petstore/aspnetcore/build.sh similarity index 100% rename from samples/server/petstore/aspnet5/build.sh rename to samples/server/petstore/aspnetcore/build.sh diff --git a/samples/server/petstore/aspnet5/global.json b/samples/server/petstore/aspnetcore/global.json similarity index 100% rename from samples/server/petstore/aspnet5/global.json rename to samples/server/petstore/aspnetcore/global.json diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/.gitignore b/samples/server/petstore/aspnetcore/src/IO.Swagger/.gitignore similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/.gitignore rename to samples/server/petstore/aspnetcore/src/IO.Swagger/.gitignore diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/PetApi.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/StoreApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/StoreApi.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/UserApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Controllers/UserApi.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Dockerfile b/samples/server/petstore/aspnetcore/src/IO.Swagger/Dockerfile similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Dockerfile rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Dockerfile diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/IO.Swagger.xproj b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/IO.Swagger.xproj rename to samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/ApiResponse.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/ApiResponse.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/ApiResponse.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/ApiResponse.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Category.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/Category.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Category.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/Order.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/Pet.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Tag.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/Tag.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Tag.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/User.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Models/User.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Models/User.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Program.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Program.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Properties/launchSettings.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/Properties/launchSettings.json similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Properties/launchSettings.json rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Properties/launchSettings.json diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/Startup.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/Startup.cs rename to samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/appsettings.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/appsettings.json similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/appsettings.json rename to samples/server/petstore/aspnetcore/src/IO.Swagger/appsettings.json diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/project.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/project.json rename to samples/server/petstore/aspnetcore/src/IO.Swagger/project.json diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/web.config b/samples/server/petstore/aspnetcore/src/IO.Swagger/web.config similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/web.config rename to samples/server/petstore/aspnetcore/src/IO.Swagger/web.config diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/README.md b/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/README.md similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/README.md rename to samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/README.md diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/index.html b/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/index.html similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/index.html rename to samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/index.html diff --git a/samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/web.config b/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/web.config similarity index 100% rename from samples/server/petstore/aspnet5/src/IO.Swagger/wwwroot/web.config rename to samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/web.config From 3e8e5e20919f1ab8f42b7f2a5e761fd412c67476 Mon Sep 17 00:00:00 2001 From: Joseph Zuromski Date: Sun, 16 Oct 2016 22:49:51 -0700 Subject: [PATCH 03/12] fix some swift3 references --- bin/swift3-petstore-promisekit.sh | 2 +- .../main/java/io/swagger/codegen/languages/Swift3Codegen.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/swift3-petstore-promisekit.sh b/bin/swift3-petstore-promisekit.sh index c7a3d5de8cf..3cf41441d3b 100755 --- a/bin/swift3-petstore-promisekit.sh +++ b/bin/swift3-petstore-promisekit.sh @@ -26,6 +26,6 @@ fi # if you've executed sbt assembly previously it will use that instead. export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties" -ags="$@ generate -t modules/swagger-codegen/src/main/resources/swift3 -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l swift3 -c ./bin/swift3-petstore-promisekit.json -o samples/client/petstore/swift/promisekit" +ags="$@ generate -t modules/swagger-codegen/src/main/resources/swift3 -i modules/swagger-codegen/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -l swift3 -c ./bin/swift3-petstore-promisekit.json -o samples/client/petstore/swift3/promisekit" java $JAVA_OPTS -jar $executable $ags diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/Swift3Codegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/Swift3Codegen.java index 37c55a26719..dd6b28702fd 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/Swift3Codegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/Swift3Codegen.java @@ -68,7 +68,7 @@ public class Swift3Codegen extends DefaultCodegen implements CodegenConfig { outputFolder = "generated-code" + File.separator + "swift"; modelTemplateFiles.put("model.mustache", ".swift"); apiTemplateFiles.put("api.mustache", ".swift"); - embeddedTemplateDir = templateDir = "swift"; + embeddedTemplateDir = templateDir = "swift3"; apiPackage = File.separator + "APIs"; modelPackage = File.separator + "Models"; From 689da8f91520c007f8665ca0ead76173bed47e2a Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Mon, 17 Oct 2016 04:26:28 -0400 Subject: [PATCH 04/12] [csharp] Fix apiPackage,modelPackage,excludeTests (#4010) * [csharp] Fix apiPackage,modelPackage,excludeTests The apiPackage, modelPackage, and excludeTests values were not being populated correctly from external configs (passing -c filename to generator). This commit allows those properties to work correctly with the Csharp client generator. Previously the Api and Model namespaces were hard coded after additionalProperties for these were evaluated. The files which generate test files for models and api classes didn't honor the excludeTests option. * [csharp] Regenerate sample * [csharp] Fix modelPackage in README template --- .../languages/CSharpClientCodegen.java | 29 +++++++++++++----- .../src/main/resources/csharp/README.mustache | 12 +++----- .../src/main/resources/csharp/api.mustache | 4 +-- .../main/resources/csharp/api_doc.mustache | 6 ++-- .../main/resources/csharp/api_test.mustache | 4 +-- .../src/main/resources/csharp/model.mustache | 2 +- .../main/resources/csharp/model_doc.mustache | 2 +- .../main/resources/csharp/model_test.mustache | 4 +-- .../csharp/SwaggerClient/IO.Swagger.sln | 10 +++---- .../petstore/csharp/SwaggerClient/build.bat | 1 - .../csharp/SwaggerClient/docs/FakeApi.md | 6 ++-- .../src/IO.Swagger/Api/FakeApi.cs | 30 ++++++++++++------- .../src/IO.Swagger/IO.Swagger.csproj | 2 +- 13 files changed, 66 insertions(+), 46 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java index f1b43088b23..0dcaa6869b0 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/CSharpClientCodegen.java @@ -21,6 +21,8 @@ import java.util.Iterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.commons.lang3.StringUtils.isEmpty; + public class CSharpClientCodegen extends AbstractCSharpCodegen { @SuppressWarnings({"unused", "hiding"}) private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class); @@ -48,9 +50,6 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { modelTemplateFiles.put("model.mustache", ".cs"); apiTemplateFiles.put("api.mustache", ".cs"); - modelTestTemplateFiles.put("model_test.mustache", ".cs"); - apiTestTemplateFiles.put("api_test.mustache", ".cs"); - modelDocTemplateFiles.put("model_doc.mustache", ".md"); apiDocTemplateFiles.put("api_doc.mustache", ".md"); @@ -146,14 +145,22 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { Boolean.valueOf(additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP).toString())); } + if(isEmpty(apiPackage)) { + apiPackage = "Api"; + } + if(isEmpty(modelPackage)) { + modelPackage = "Model"; + } + clientPackage = "Client"; + Boolean excludeTests = false; if(additionalProperties.containsKey(CodegenConstants.EXCLUDE_TESTS)) { excludeTests = Boolean.valueOf(additionalProperties.get(CodegenConstants.EXCLUDE_TESTS).toString()); } - apiPackage = "Api"; - modelPackage = "Model"; - clientPackage = "Client"; + additionalProperties.put(CodegenConstants.API_PACKAGE, apiPackage); + + additionalProperties.put(CodegenConstants.MODEL_PACKAGE, modelPackage); additionalProperties.put("clientPackage", clientPackage); @@ -248,15 +255,20 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { supportingFiles.add(new SupportingFile("compile.mustache", "", "build.bat")); supportingFiles.add(new SupportingFile("compile-mono.sh.mustache", "", "build.sh")); - // shell script to run the nunit test - supportingFiles.add(new SupportingFile("mono_nunit_test.mustache", "", "mono_nunit_test.sh")); // copy package.config to nuget's standard location for project-level installs supportingFiles.add(new SupportingFile("packages.config.mustache", packageFolder + File.separator, "packages.config")); // .travis.yml for travis-ci.org CI supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml")); + // Only write out test related files if excludeTests is unset or explicitly set to false (see start of this method) if(Boolean.FALSE.equals(excludeTests)) { + // shell script to run the nunit test + supportingFiles.add(new SupportingFile("mono_nunit_test.mustache", "", "mono_nunit_test.sh")); + + modelTestTemplateFiles.put("model_test.mustache", ".cs"); + apiTestTemplateFiles.put("api_test.mustache", ".cs"); + supportingFiles.add(new SupportingFile("packages_test.config.mustache", testPackageFolder + File.separator, "packages.config")); } @@ -279,6 +291,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { supportingFiles.add(new SupportingFile("Project.mustache", packageFolder, packageName + ".csproj")); if(Boolean.FALSE.equals(excludeTests)) { + // NOTE: This exists here rather than previous excludeTests block because the test project is considered an optional project file. supportingFiles.add(new SupportingFile("TestProject.mustache", testPackageFolder, testPackageName + ".csproj")); } } diff --git a/modules/swagger-codegen/src/main/resources/csharp/README.mustache b/modules/swagger-codegen/src/main/resources/csharp/README.mustache index 89af5dd54cc..a2857964cbe 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/README.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/README.mustache @@ -44,11 +44,9 @@ Run the following command to generate the DLL Then include the DLL (under the `bin` folder) in the C# project, and use the namespaces: ```csharp -using {{packageName}}.Api; +using {{packageName}}.{{apiPackage}}; using {{packageName}}.Client; -{{#modelPackage}} -using {{{.}}}; -{{/modelPackage}} +using {{packageName}}.{{modelPackage}}; ``` ## Getting Started @@ -56,11 +54,9 @@ using {{{.}}}; ```csharp using System; using System.Diagnostics; -using {{packageName}}.Api; +using {{packageName}}.{{apiPackage}}; using {{packageName}}.Client; -{{#modelPackage}} -using {{{.}}}; -{{/modelPackage}} +using {{packageName}}.{{modelPackage}}; namespace Example { diff --git a/modules/swagger-codegen/src/main/resources/csharp/api.mustache b/modules/swagger-codegen/src/main/resources/csharp/api.mustache index 807155e4a45..f62cabe42e0 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api.mustache @@ -5,10 +5,10 @@ using System.Collections.ObjectModel; using System.Linq; using RestSharp; using {{packageName}}.Client; -{{#hasImport}}using {{packageName}}.Model; +{{#hasImport}}using {{packageName}}.{{modelPackage}}; {{/hasImport}} -namespace {{packageName}}.Api +namespace {{packageName}}.{{apiPackage}} { {{#operations}} /// diff --git a/modules/swagger-codegen/src/main/resources/csharp/api_doc.mustache b/modules/swagger-codegen/src/main/resources/csharp/api_doc.mustache index 224450867ab..8349db2e1c1 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api_doc.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api_doc.mustache @@ -1,4 +1,4 @@ -# {{packageName}}.Api.{{classname}}{{#description}} +# {{packageName}}.{{apiPackage}}.{{classname}}{{#description}} {{description}}{{/description}} All URIs are relative to *{{{basePath}}}* @@ -22,9 +22,9 @@ Method | HTTP request | Description ```csharp using System; using System.Diagnostics; -using {{packageName}}.Api; +using {{packageName}}.{{apiPackage}}; using {{packageName}}.Client; -using {{packageName}}.Model; +using {{packageName}}.{{modelPackage}}; namespace Example { diff --git a/modules/swagger-codegen/src/main/resources/csharp/api_test.mustache b/modules/swagger-codegen/src/main/resources/csharp/api_test.mustache index 2f20508f336..05500808871 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/api_test.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/api_test.mustache @@ -9,8 +9,8 @@ using RestSharp; using NUnit.Framework; using {{packageName}}.Client; -using {{packageName}}.Api; -{{#hasImport}}using {{packageName}}.Model; +using {{packageName}}.{{apiPackage}}; +{{#hasImport}}using {{packageName}}.{{modelPackage}}; {{/hasImport}} namespace {{packageName}}.Test diff --git a/modules/swagger-codegen/src/main/resources/csharp/model.mustache b/modules/swagger-codegen/src/main/resources/csharp/model.mustache index 9c9610e5326..307f69131b8 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/model.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/model.mustache @@ -18,7 +18,7 @@ using System.ComponentModel.DataAnnotations; {{#models}} {{#model}} -namespace {{packageName}}.Model +namespace {{packageName}}.{{modelPackage}} { {{#isEnum}}{{>modelEnum}}{{/isEnum}}{{^isEnum}}{{>modelGeneric}}{{/isEnum}} {{/model}} diff --git a/modules/swagger-codegen/src/main/resources/csharp/model_doc.mustache b/modules/swagger-codegen/src/main/resources/csharp/model_doc.mustache index aff3e7e0d1e..112d4725495 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/model_doc.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/model_doc.mustache @@ -1,6 +1,6 @@ {{#models}} {{#model}} -# {{{packageName}}}.Model.{{{classname}}} +# {{{packageName}}}.{{modelPackage}}.{{{classname}}} ## Properties Name | Type | Description | Notes diff --git a/modules/swagger-codegen/src/main/resources/csharp/model_test.mustache b/modules/swagger-codegen/src/main/resources/csharp/model_test.mustache index 233534a3348..f059706af14 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/model_test.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/model_test.mustache @@ -6,8 +6,8 @@ using System; using System.Linq; using System.IO; using System.Collections.Generic; -using {{packageName}}.Api; -using {{packageName}}.Model; +using {{packageName}}.{{apiPackage}}; +using {{packageName}}.{{modelPackage}}; using {{packageName}}.Client; using System.Reflection; diff --git a/samples/client/petstore/csharp/SwaggerClient/IO.Swagger.sln b/samples/client/petstore/csharp/SwaggerClient/IO.Swagger.sln index e6247e2a679..81bb70169d3 100644 --- a/samples/client/petstore/csharp/SwaggerClient/IO.Swagger.sln +++ b/samples/client/petstore/csharp/SwaggerClient/IO.Swagger.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 VisualStudioVersion = 12.0.0.0 MinimumVisualStudioVersion = 10.0.0.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{473916C4-D026-4063-8A3D-34BC255A0E7A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{D6453B3C-D08D-41D7-A59B-DE1F3581D258}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger.Test", "src\IO.Swagger.Test\IO.Swagger.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}" EndProject @@ -12,10 +12,10 @@ Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution -{473916C4-D026-4063-8A3D-34BC255A0E7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{473916C4-D026-4063-8A3D-34BC255A0E7A}.Debug|Any CPU.Build.0 = Debug|Any CPU -{473916C4-D026-4063-8A3D-34BC255A0E7A}.Release|Any CPU.ActiveCfg = Release|Any CPU -{473916C4-D026-4063-8A3D-34BC255A0E7A}.Release|Any CPU.Build.0 = Release|Any CPU +{D6453B3C-D08D-41D7-A59B-DE1F3581D258}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +{D6453B3C-D08D-41D7-A59B-DE1F3581D258}.Debug|Any CPU.Build.0 = Debug|Any CPU +{D6453B3C-D08D-41D7-A59B-DE1F3581D258}.Release|Any CPU.ActiveCfg = Release|Any CPU +{D6453B3C-D08D-41D7-A59B-DE1F3581D258}.Release|Any CPU.Build.0 = Release|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/samples/client/petstore/csharp/SwaggerClient/build.bat b/samples/client/petstore/csharp/SwaggerClient/build.bat index ae94b120d7b..a718ff48335 100644 --- a/samples/client/petstore/csharp/SwaggerClient/build.bat +++ b/samples/client/petstore/csharp/SwaggerClient/build.bat @@ -16,7 +16,6 @@ SET CSCPATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319 - if not exist ".\nuget.exe" powershell -Command "(new-object System.Net.WebClient).DownloadFile('https://nuget.org/nuget.exe', '.\nuget.exe')" .\nuget.exe install src\IO.Swagger\packages.config -o packages diff --git a/samples/client/petstore/csharp/SwaggerClient/docs/FakeApi.md b/samples/client/petstore/csharp/SwaggerClient/docs/FakeApi.md index 106daec81bf..7d5f96ce78e 100644 --- a/samples/client/petstore/csharp/SwaggerClient/docs/FakeApi.md +++ b/samples/client/petstore/csharp/SwaggerClient/docs/FakeApi.md @@ -71,7 +71,7 @@ No authorization required # **TestEndpointParameters** -> void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null) +> void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 @@ -110,11 +110,12 @@ namespace Example var date = 2013-10-20; // DateTime? | None (optional) var dateTime = 2013-10-20T19:20:30+01:00; // DateTime? | None (optional) var password = password_example; // string | None (optional) + var callback = callback_example; // string | None (optional) try { // Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 - apiInstance.TestEndpointParameters(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password); + apiInstance.TestEndpointParameters(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); } catch (Exception e) { @@ -142,6 +143,7 @@ Name | Type | Description | Notes **date** | **DateTime?**| None | [optional] **dateTime** | **DateTime?**| None | [optional] **password** | **string**| None | [optional] + **callback** | **string**| None | [optional] ### Return type diff --git a/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/Api/FakeApi.cs b/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/Api/FakeApi.cs index f6d4c85a6ce..66bdfaf3b37 100644 --- a/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/Api/FakeApi.cs @@ -77,8 +77,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// - void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null); + void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); /// /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 @@ -100,8 +101,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// ApiResponse of Object(void) - ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null); + ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); /// /// To test enum parameters /// @@ -180,8 +182,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// Task of void - System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null); + System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); /// /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 @@ -203,8 +206,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// Task of ApiResponse - System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null); + System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null); /// /// To test enum parameters /// @@ -526,10 +530,11 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// - public void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null) + public void TestEndpointParameters (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) { - TestEndpointParametersWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password); + TestEndpointParametersWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); } /// @@ -549,8 +554,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// ApiResponse of Object(void) - public ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null) + public ApiResponse TestEndpointParametersWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) { // verify the required parameter 'number' is set if (number == null) @@ -605,6 +611,7 @@ namespace IO.Swagger.Api if (date != null) localVarFormParams.Add("date", Configuration.ApiClient.ParameterToString(date)); // form parameter if (dateTime != null) localVarFormParams.Add("dateTime", Configuration.ApiClient.ParameterToString(dateTime)); // form parameter if (password != null) localVarFormParams.Add("password", Configuration.ApiClient.ParameterToString(password)); // form parameter + if (callback != null) localVarFormParams.Add("callback", Configuration.ApiClient.ParameterToString(callback)); // form parameter // authentication (http_basic_test) required // http basic authentication required @@ -650,10 +657,11 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// Task of void - public async System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null) + public async System.Threading.Tasks.Task TestEndpointParametersAsync (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) { - await TestEndpointParametersAsyncWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password); + await TestEndpointParametersAsyncWithHttpInfo(number, _double, patternWithoutDelimiter, _byte, integer, int32, int64, _float, _string, binary, date, dateTime, password, callback); } @@ -674,8 +682,9 @@ namespace IO.Swagger.Api /// None (optional) /// None (optional) /// None (optional) + /// None (optional) /// Task of ApiResponse - public async System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null) + public async System.Threading.Tasks.Task> TestEndpointParametersAsyncWithHttpInfo (decimal? number, double? _double, string patternWithoutDelimiter, byte[] _byte, int? integer = null, int? int32 = null, long? int64 = null, float? _float = null, string _string = null, byte[] binary = null, DateTime? date = null, DateTime? dateTime = null, string password = null, string callback = null) { // verify the required parameter 'number' is set if (number == null) @@ -730,6 +739,7 @@ namespace IO.Swagger.Api if (date != null) localVarFormParams.Add("date", Configuration.ApiClient.ParameterToString(date)); // form parameter if (dateTime != null) localVarFormParams.Add("dateTime", Configuration.ApiClient.ParameterToString(dateTime)); // form parameter if (password != null) localVarFormParams.Add("password", Configuration.ApiClient.ParameterToString(password)); // form parameter + if (callback != null) localVarFormParams.Add("callback", Configuration.ApiClient.ParameterToString(callback)); // form parameter // authentication (http_basic_test) required // http basic authentication required diff --git a/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/IO.Swagger.csproj b/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/IO.Swagger.csproj index 51cfaa98df0..498c1bedf58 100644 --- a/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/IO.Swagger.csproj +++ b/samples/client/petstore/csharp/SwaggerClient/src/IO.Swagger/IO.Swagger.csproj @@ -24,7 +24,7 @@ limitations under the License. Debug AnyCPU - {473916C4-D026-4063-8A3D-34BC255A0E7A} + {D6453B3C-D08D-41D7-A59B-DE1F3581D258} Library Properties IO.Swagger From 66215f7a28bc329c6aa915c529e43eff17f362fa Mon Sep 17 00:00:00 2001 From: mn288 Date: Mon, 17 Oct 2016 14:58:10 +0300 Subject: [PATCH 05/12] Added company (#4015) Added carpolo as a project using Swagger --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d9f7e365ad8..ee5203e97d8 100644 --- a/README.md +++ b/README.md @@ -752,6 +752,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [bitly](https://bitly.com) - [Bufferfly Network](https://www.butterflynetinc.com/) - [Cachet Financial](http://www.cachetfinancial.com/) +- [carpolo](http://www.carpolo.co/) - [CloudBoost](https://www.CloudBoost.io/) - [Conplement](http://www.conplement.de/) - [Cummins] (http://www.cummins.com/) @@ -810,6 +811,7 @@ Here are some companies/projects using Swagger Codegen in production. To add you - [Zalando](https://tech.zalando.com) - [ZEEF.com](https://zeef.com/) + # Swagger Codegen Core Team Swagger Codegen core team members are contributors who have been making significant contributions (review issues, fix bugs, make enhancements, etc) to the project on a regular basis. From 727038a1860de764057cb689112104a9fb6c55b8 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 18 Oct 2016 01:48:12 +1100 Subject: [PATCH 06/12] Issue 3651 (#4014) * added method summary under the method name * added batch file for html2 generation on windows * regenerated html2 example * changed the html2 windows batch to use yaml instead of json and regenerated sample * fixed encoding issues --- bin/windows/html2-petstore.bat | 10 +++++++++ .../main/resources/htmlDocs2/index.mustache | 1 + samples/html2/index.html | 22 ++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 bin/windows/html2-petstore.bat diff --git a/bin/windows/html2-petstore.bat b/bin/windows/html2-petstore.bat new file mode 100644 index 00000000000..42dca617c8a --- /dev/null +++ b/bin/windows/html2-petstore.bat @@ -0,0 +1,10 @@ +set executable=.\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar + +If Not Exist %executable% ( + mvn clean package +) + +REM set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -DloggerPath=conf/log4j.properties +set ags=generate -i modules\swagger-codegen\src\test\resources\2_0\petstore.yaml -l html2 -o samples\html2 + +java %JAVA_OPTS% -jar %executable% %ags% diff --git a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache index c07ed7ca1e1..c65ca350268 100644 --- a/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache +++ b/modules/swagger-codegen/src/main/resources/htmlDocs2/index.mustache @@ -216,6 +216,7 @@ function loadGoogleFontCss() {

{{nickname}}

+

{{summary}}

diff --git a/samples/html2/index.html b/samples/html2/index.html index 38c4970ed5e..f454250971e 100644 --- a/samples/html2/index.html +++ b/samples/html2/index.html @@ -997,6 +997,7 @@ margin-bottom: 20px;

addPet

+

Add a new pet to the store

@@ -1393,6 +1394,7 @@ try {

deletePet

+

Deletes a pet

@@ -1828,6 +1830,7 @@ try {

findPetsByStatus

+

Finds Pets by status

@@ -2307,6 +2310,7 @@ try {

findPetsByTags

+

Finds Pets by tags

@@ -2784,6 +2788,7 @@ try {

getPetById

+

Find pet by ID

@@ -3341,6 +3346,7 @@ try {

updatePet

+

Update an existing pet

@@ -3889,6 +3895,7 @@ try {

updatePetWithForm

+

Updates a pet in the store with form data

@@ -4290,6 +4297,7 @@ try {

uploadFile

+

uploads an image

@@ -4705,6 +4713,7 @@ try {

deleteOrder

+

Delete purchase order by ID

@@ -5145,6 +5154,7 @@ try {

getInventory

+

Returns pet inventories by status

@@ -5504,6 +5514,7 @@ try {

getOrderById

+

Find purchase order by ID

@@ -6032,6 +6043,7 @@ try {

placeOrder

+

Place an order for a pet

@@ -6497,6 +6509,7 @@ try {

createUser

+

Create user

@@ -6872,6 +6885,7 @@ try {

createUsersWithArrayInput

+

Creates list of users with given input array

@@ -7250,6 +7264,7 @@ try {

createUsersWithListInput

+

Creates list of users with given input array

@@ -7628,6 +7643,7 @@ try {

deleteUser

+

Delete user

@@ -8067,6 +8083,7 @@ try {

getUserByName

+

Get user by user name

@@ -8592,6 +8609,7 @@ try {

loginUser

+

Logs user into the system

@@ -9094,6 +9112,7 @@ try {

logoutUser

+

Logs out current logged in user session

@@ -9408,6 +9427,7 @@ try {

updateUser

+

Updated user

@@ -9921,7 +9941,7 @@ try {
- Generated 2016-10-13T09:03:51.792-07:00 + Generated 2016-10-17T21:36:47.443+11:00
From 6a7b9240a2ab003d32f2ba7fca2f9406c087be9b Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Mon, 17 Oct 2016 22:15:03 -0400 Subject: [PATCH 07/12] [csharp] add missing anchor tags in readme (#4019) --- .../src/main/resources/csharp/README.mustache | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/csharp/README.mustache b/modules/swagger-codegen/src/main/resources/csharp/README.mustache index a2857964cbe..bb228814338 100644 --- a/modules/swagger-codegen/src/main/resources/csharp/README.mustache +++ b/modules/swagger-codegen/src/main/resources/csharp/README.mustache @@ -16,6 +16,7 @@ This C# SDK is automatically generated by the [Swagger Codegen](https://github.c For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) {{/infoUrl}} + ## Frameworks supported {{^supportUWP}} - .NET 4.0 or later @@ -25,6 +26,7 @@ This C# SDK is automatically generated by the [Swagger Codegen](https://github.c - UWP {{/supportUWP}} + ## Dependencies - [RestSharp](https://www.nuget.org/packages/RestSharp) - 105.1.0 or later - [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) - 7.0.0 or later @@ -37,6 +39,7 @@ Install-Package Newtonsoft.Json NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See [RestSharp#742](https://github.com/restsharp/RestSharp/issues/742) + ## Installation Run the following command to generate the DLL - [Mac/Linux] `/bin/sh build.sh` @@ -48,7 +51,7 @@ using {{packageName}}.{{apiPackage}}; using {{packageName}}.Client; using {{packageName}}.{{modelPackage}}; ``` - + ## Getting Started ```csharp @@ -124,6 +127,7 @@ Class | Method | HTTP request | Description No model defined in this package {{/modelPackage}} + ## Documentation for Authorization {{^authMethods}} From 52ffc7869e3547972119c5c09bb34bdd36fb638a Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 18 Oct 2016 16:32:35 +0800 Subject: [PATCH 08/12] improvements based on #3568 (#4021) --- .../java/io/swagger/codegen/languages/JavaClientCodegen.java | 2 +- modules/swagger-codegen/src/main/resources/Java/model.mustache | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java index 53ec3768896..58286080a81 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java @@ -36,7 +36,7 @@ public class JavaClientCodegen extends AbstractJavaCodegen { cliOptions.add(CliOption.newBoolean(USE_RX_JAVA, "Whether to use the RxJava adapter with the retrofit2 library.")); cliOptions.add(CliOption.newBoolean(PARCELABLE_MODEL, "Whether to generate models for Android that implement Parcelable with the okhttp-gson library.")); - cliOptions.add(CliOption.newBoolean(SUPPORT_JAVA6, "Whether to support Java6 with the Jersey1 library. (Default: false)")); + cliOptions.add(CliOption.newBoolean(SUPPORT_JAVA6, "Whether to support Java6 with the Jersey1 library.")); supportedLibraries.put("jersey1", "HTTP client: Jersey client 1.19.1. JSON processing: Jackson 2.7.0. Enable Java6 support using '-DsupportJava6=true'."); supportedLibraries.put("feign", "HTTP client: Netflix Feign 8.16.0. JSON processing: Jackson 2.7.0"); diff --git a/modules/swagger-codegen/src/main/resources/Java/model.mustache b/modules/swagger-codegen/src/main/resources/Java/model.mustache index 31148bafcec..6c7feabde63 100644 --- a/modules/swagger-codegen/src/main/resources/Java/model.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/model.mustache @@ -2,7 +2,9 @@ package {{package}}; +{{^supportJava6}} import java.util.Objects; +{{/supportJava6}} {{#imports}} import {{import}}; {{/imports}} From 702344ed75be418795a6cffbd2fe33ed82ef469e Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 18 Oct 2016 17:58:19 +0800 Subject: [PATCH 09/12] better handling of reserved words for sintatra, dart --- .../codegen/languages/DartClientCodegen.java | 7 ++++-- .../languages/SinatraServerCodegen.java | 7 ++++-- .../dart/swagger/.swagger-codegen-ignore | 23 +++++++++++++++++++ samples/server/petstore/sinatra/swagger.yaml | 12 ++++++++++ 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 samples/client/petstore/dart/swagger/.swagger-codegen-ignore diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartClientCodegen.java index 652ff759deb..1d90984f8b0 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/DartClientCodegen.java @@ -211,7 +211,8 @@ public class DartClientCodegen extends DefaultCodegen implements CodegenConfig { public String toModelName(String name) { // model name cannot use reserved keyword, e.g. return if (isReservedWord(name)) { - throw new RuntimeException(name + " (reserved word) cannot be used as a model name"); + LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) } // camelize the model name @@ -273,7 +274,9 @@ public class DartClientCodegen extends DefaultCodegen implements CodegenConfig { public String toOperationId(String operationId) { // method name cannot use reserved keyword, e.g. return if (isReservedWord(operationId)) { - throw new RuntimeException(operationId + " (reserved word) cannot be used as method name"); + String newOperationId = camelize("call_" + operationId, true); + LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + newOperationId); + return newOperationId; } return camelize(operationId, true); diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java index 345607e3b4a..1457d1d2e6f 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java @@ -182,7 +182,8 @@ public class SinatraServerCodegen extends DefaultCodegen implements CodegenConfi public String toModelName(String name) { // model name cannot use reserved keyword, e.g. return if (isReservedWord(name)) { - throw new RuntimeException(name + " (reserved word) cannot be used as a model name"); + LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + camelize("model_" + name)); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) } // camelize the model name @@ -224,7 +225,9 @@ public class SinatraServerCodegen extends DefaultCodegen implements CodegenConfi public String toOperationId(String operationId) { // method name cannot use reserved keyword, e.g. return if (isReservedWord(operationId)) { - throw new RuntimeException(operationId + " (reserved word) cannot be used as method name"); + String newOperationId = underscore("call_" + operationId); + LOGGER.warn(operationId + " (reserved word) cannot be used as method name. Renamed to " + newOperationId); + return newOperationId; } return underscore(operationId); diff --git a/samples/client/petstore/dart/swagger/.swagger-codegen-ignore b/samples/client/petstore/dart/swagger/.swagger-codegen-ignore new file mode 100644 index 00000000000..c5fa491b4c5 --- /dev/null +++ b/samples/client/petstore/dart/swagger/.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/server/petstore/sinatra/swagger.yaml b/samples/server/petstore/sinatra/swagger.yaml index e6a9add869d..53ce6c55e97 100644 --- a/samples/server/petstore/sinatra/swagger.yaml +++ b/samples/server/petstore/sinatra/swagger.yaml @@ -604,6 +604,8 @@ definitions: complete: type: "boolean" default: false + title: "Pet Order" + description: "An order for a pets from the pet store" xml: name: "Order" Category: @@ -614,6 +616,8 @@ definitions: format: "int64" name: type: "string" + title: "Pet catehgry" + description: "A category for a pet" xml: name: "Category" User: @@ -638,6 +642,8 @@ definitions: type: "integer" format: "int32" description: "User Status" + title: "a User" + description: "A User who is purchasing from the pet store" xml: name: "User" Tag: @@ -648,6 +654,8 @@ definitions: format: "int64" name: type: "string" + title: "Pet Tag" + description: "A tag for a pet" xml: name: "Tag" Pet: @@ -685,6 +693,8 @@ definitions: - "available" - "pending" - "sold" + title: "a Pet" + description: "A pet for sale in the pet store" xml: name: "Pet" ApiResponse: @@ -697,6 +707,8 @@ definitions: type: "string" message: type: "string" + title: "An uploaded response" + description: "Describes the result of uploading an image resource" externalDocs: description: "Find out more about Swagger" url: "http://swagger.io" From b50b33e891502a1244c0442604dd1e46318a74f8 Mon Sep 17 00:00:00 2001 From: wing328 Date: Tue, 18 Oct 2016 18:51:08 +0800 Subject: [PATCH 10/12] fix reserved word handling in model name (sinatra) --- .../io/swagger/codegen/languages/SinatraServerCodegen.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java index 1457d1d2e6f..e68d6c3509c 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/SinatraServerCodegen.java @@ -195,7 +195,8 @@ public class SinatraServerCodegen extends DefaultCodegen implements CodegenConfi public String toModelFilename(String name) { // model name cannot use reserved keyword, e.g. return if (isReservedWord(name)) { - throw new RuntimeException(name + " (reserved word) cannot be used as a model name"); + LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + underscore("model_" + name)); + name = "model_" + name; // e.g. return => ModelReturn (after camelize) } // underscore the model file name From c26833fd64f9cd3e5f5ab5c78dcaea3d70013f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20L=C3=B3pez=20Le=C3=B3n?= Date: Tue, 18 Oct 2016 09:28:30 -0300 Subject: [PATCH 11/12] [java] Allow setting test folder To keep consistency between `sourceFolder` and `testFolder` access --- .../io/swagger/codegen/languages/AbstractJavaCodegen.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java index 9d4d16df9d4..01ee1c02c08 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractJavaCodegen.java @@ -876,6 +876,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code this.sourceFolder = sourceFolder; } + public void setTestFolder(String testFolder) { + this.testFolder = testFolder; + } + public void setLocalVariablePrefix(String localVariablePrefix) { this.localVariablePrefix = localVariablePrefix; } From 60a52ee72927666780891aca6e4043bd5fd8d43b Mon Sep 17 00:00:00 2001 From: k1w1m8 Date: Wed, 19 Oct 2016 13:45:14 +1100 Subject: [PATCH 12/12] Java6 support for jersey2 (#4033) --- .../Java/libraries/jersey2/ApiClient.mustache | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache index db0daf0d3f4..4ea86f5cd6f 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/ApiClient.mustache @@ -22,7 +22,13 @@ import org.glassfish.jersey.media.multipart.MultiPartFeature; import java.io.IOException; import java.io.InputStream; + +{{^supportJava6}} import java.nio.file.Files; +{{/supportJava6}} +{{#supportJava6}} +import org.apache.commons.io.FileUtils; +{{/supportJava6}} import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -521,7 +527,13 @@ public class ApiClient { public File downloadFileFromResponse(Response response) throws ApiException { try { File file = prepareDownloadFile(response); +{{^supportJava6}} Files.copy(response.readEntity(InputStream.class), file.toPath()); +{{/supportJava6}} +{{#supportJava6}} + // Java6 falls back to commons.io for file copying + FileUtils.copyToFile(response.readEntity(InputStream.class), file); +{{/supportJava6}} return file; } catch (IOException e) { throw new ApiException(e);