Skip to content

Commit

Permalink
Merge pull request #438 from swagger-api/develop_2.0
Browse files Browse the repository at this point in the history
merged to master for patch release
  • Loading branch information
fehguy committed Feb 18, 2015
2 parents 279f43d + 3061cd8 commit 1253194
Show file tree
Hide file tree
Showing 26 changed files with 195 additions and 97 deletions.
38 changes: 28 additions & 10 deletions modules/swagger-codegen-distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<parent>
<groupId>com.wordnik</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.0-M1</version>
<version>2.1.1-M1</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.wordnik</groupId>
<artifactId>swagger-codegen-distribution</artifactId>
<packaging>jar</packaging>
<name>swagger-codegen (executable)</name>
<version>2.1.0-M1</version>
<version>2.1.1-M1</version>
<build>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<outputDirectory>target/classes</outputDirectory>
Expand All @@ -19,6 +19,17 @@
<directory>target</directory>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.wordnik.swagger.codegen.Codegen</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
Expand All @@ -41,14 +52,21 @@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.wordnik.swagger.codegen.Codegen</mainClass>
</manifest>
</archive>
</configuration>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Expand Down
4 changes: 2 additions & 2 deletions modules/swagger-codegen/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<parent>
<groupId>com.wordnik</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.0-M1</version>
<version>2.1.1-M1</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.wordnik</groupId>
<artifactId>swagger-codegen</artifactId>
<packaging>jar</packaging>
<name>swagger-codegen (core library)</name>
<version>2.1.0-M1</version>
<version>2.1.1-M1</version>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<defaultGoal>install</defaultGoal>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ public String escapeReservedWord(String name) {

@Override
public String apiFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
}

public String modelFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,11 @@ public String escapeReservedWord(String name) {

@Override
public String apiFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
}

public String modelFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ public String escapeReservedWord(String name) {

@Override
public String apiFileFolder() {
return outputFolder + "/" + apiPackage().replaceAll("\\.", "/");
return outputFolder + "/" + apiPackage().replace('.', File.separatorChar);
}

public String modelFileFolder() {
return outputFolder + "/" + modelPackage().replaceAll("\\.", "/");
return outputFolder + "/" + modelPackage().replace('.', File.separatorChar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public PythonClientCodegen() {
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
supportingFiles.add(new SupportingFile("swagger.mustache", module, "swagger.py"));
supportingFiles.add(new SupportingFile("__init__.mustache", module, "__init__.py"));
supportingFiles.add(new SupportingFile("__init__.mustache", modelPackage.replaceAll("\\.", File.separator), "__init__.py"));
supportingFiles.add(new SupportingFile("__init__.mustache", modelPackage.replace('.', File.separatorChar), "__init__.py"));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@ public String escapeReservedWord(String name) {

@Override
public String apiFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
}

public String modelFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,11 @@ public String escapeReservedWord(String name) {

@Override
public String apiFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + apiPackage().replace('.', File.separatorChar);
}

public String modelFileFolder() {
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replaceAll("\\.", "/");
return outputFolder + "/" + sourceFolder + "/" + modelPackage().replace('.', File.separatorChar);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,11 @@ public class ApiInvoker {
}

public static Object deserialize(String json, String containerType, Class cls) throws ApiException {
if(null != containerType) {
containerType = containerType.toLowerCase();
}
try{
if("List".equals(containerType)) {
if("list".equals(containerType) || "array".equals(containerType)) {
JavaType typeInfo = JsonUtil.getJsonMapper().getTypeFactory().constructCollectionType(List.class, cls);
List response = (List<?>) JsonUtil.getJsonMapper().readValue(json, typeInfo);
return response;
Expand Down
11 changes: 9 additions & 2 deletions modules/swagger-generator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<parent>
<groupId>com.wordnik</groupId>
<artifactId>swagger-codegen-project</artifactId>
<version>2.1.0-M1</version>
<version>2.1.1-M1</version>
<relativePath>../..</relativePath>
</parent>
<groupId>com.wordnik</groupId>
Expand Down Expand Up @@ -200,10 +200,18 @@
<artifactId>jetty-deploy</artifactId>
<version>${jetty-version}</version>
</dependency>

<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.11</artifactId>
<version>${scala-test-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
Expand All @@ -228,6 +236,5 @@

<scala-maven-plugin-version>3.1.5</scala-maven-plugin-version>
<scala-version>2.10.0</scala-version>
<scala-test-version>1.9</scala-test-version>
</properties>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,13 @@ public void init(ServletConfig config) throws ServletException {
bc.setBasePath("/api");
bc.setTitle("Swagger Generator");
bc.setDescription("This is an online swagger codegen server. You can find out more " +
"at <a href=\"https://github.com/wordnik/swagger-generator\">https://github.com/wordnik/swagger-generator</a> or on irc.freenode.net, #swagger." +
"at <a href=\"https://github.com/wordnik/swagger-generator\">https://github.com/swagger-api/swagger-codegen</a> or on irc.freenode.net, #swagger." +
"http://helloreverb.com/terms/");
bc.setTermsOfServiceUrl("http://helloreverb.com/terms/");
bc.setContact("[email protected]");
bc.setLicense("Apache 2.0");
bc.setVersion("1.0.0");
bc.setHost("generator.swagger.io");
bc.setLicenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html");
bc.setResourcePackage("com.wordnik.swagger.generator.resource");
bc.setScan(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,25 @@

public class ResponseCode {
private String code;
private String link;
public ResponseCode() {}

public ResponseCode(String code, String link) {
setCode(code);
setLink(link);
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public ResponseCode() {}

public ResponseCode(String code) {
setCode(code);
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,33 @@

import com.fasterxml.jackson.databind.JsonNode;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.util.List;
import java.util.ArrayList;

public class Generator {
static Logger LOGGER = LoggerFactory.getLogger(Generator.class);

public static String generateClient(String language, GeneratorInput opts) throws ApiException {
Swagger swagger;
LOGGER.debug("generate client for " + language);
if(opts == null) {
throw new BadRequestException(400, "No options were supplied");
}
JsonNode node = opts.getSpec();
if(node == null) {
throw new BadRequestException(400, "No swagger specification was supplied");
if(opts.getSwaggerUrl() != null) {
swagger = new SwaggerParser().read(opts.getSwaggerUrl());
}
else
throw new BadRequestException(400, "No swagger specification was supplied");
}
else {
swagger = new SwaggerParser().read(node);
}
Swagger swagger = new SwaggerParser().read(node);
if(swagger == null) {
throw new BadRequestException(400, "The swagger specification supplied was not valid");
}
Expand Down Expand Up @@ -67,8 +80,56 @@ public static String generateClient(String language, GeneratorInput opts) throws
return outputFilename;
}

public static String generateServer(String language, GeneratorInput opts) {
return "";
public static String generateServer(String language, GeneratorInput opts) throws ApiException {
LOGGER.debug("generate server for " + language);
if(opts == null) {
throw new BadRequestException(400, "No options were supplied");
}
JsonNode node = opts.getSpec();
if(node == null) {
throw new BadRequestException(400, "No swagger specification was supplied");
}
Swagger swagger = new SwaggerParser().read(node);
if(swagger == null) {
throw new BadRequestException(400, "The swagger specification supplied was not valid");
}

ClientOptInput clientOptInput = new ClientOptInput();
ClientOpts clientOpts = new ClientOpts();
String outputFolder = getTmpFolder().getAbsolutePath() + File.separator + language + "-server";
String outputFilename = outputFolder + "-bundle.zip";

clientOptInput
.opts(clientOpts)
.swagger(swagger);

CodegenConfig codegenConfig = Codegen.getConfig(language);
if(codegenConfig == null) {
throw new BadRequestException(400, "Unsupported target " + language + " supplied");
}

codegenConfig.setOutputDir(outputFolder);

Json.prettyPrint(clientOpts);

clientOptInput.setConfig(codegenConfig);

try{
List<File> files = new Codegen().opts(clientOptInput).generate();
if(files.size() > 0) {
List<File> filesToAdd = new ArrayList<File>();
filesToAdd.add(new File(outputFolder));
ZipUtil zip = new ZipUtil();
zip.compressFiles(filesToAdd, outputFilename);
}
else {
throw new BadRequestException(400, "A target generation was attempted, but no files were created!");
}
}
catch (Exception e) {
throw new BadRequestException(500, "Unable to build target: " + e.getMessage());
}
return outputFilename;
}

public static InputOption clientOptions(String language) {
Expand Down
Loading

0 comments on commit 1253194

Please sign in to comment.