diff --git a/README.md b/README.md index 6fe067b7342..c951c4b9620 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ The Swagger Specification has undergone 3 revisions since initial creation in 20 Swagger Codegen Version | Release Date | Swagger Spec compatibility | Notes ----------------------- | ------------ | -------------------------- | ----- -1.5.0-M2 | 2015-04-06 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen) +2.1.0-M2 | 2015-04-06 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen) 2.0.17 | 2014-08-22 | 1.1, 1.2 | [tag v2.0.17](https://github.com/swagger-api/swagger-codegen/tree/v2.0.17) 1.0.4 | 2012-04-12 | 1.0, 1.1 | [tag v1.0.4](https://github.com/swagger-api/swagger-codegen/tree/swagger-codegen_2.9.1-1.1) diff --git a/modules/swagger-codegen-cli/pom.xml b/modules/swagger-codegen-cli/pom.xml index caf6d3d54a3..d5c54882f5d 100644 --- a/modules/swagger-codegen-cli/pom.xml +++ b/modules/swagger-codegen-cli/pom.xml @@ -3,7 +3,7 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. 4.0.0 diff --git a/modules/swagger-codegen/pom.xml b/modules/swagger-codegen/pom.xml index 54c8cf9f6cb..e4b70a492b8 100644 --- a/modules/swagger-codegen/pom.xml +++ b/modules/swagger-codegen/pom.xml @@ -2,7 +2,7 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. 4.0.0 @@ -10,7 +10,7 @@ swagger-codegen jar swagger-codegen (core library) - 1.5.0-M2 + 2.1.0-M2 src/main/java install diff --git a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache index ac689046047..c30ba4cdd12 100644 --- a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache @@ -18,6 +18,7 @@ import javax.ws.rs.core.MediaType; import java.util.Collection; import java.util.Map; +import java.util.Map.Entry; import java.util.HashMap; import java.util.List; import java.util.Date; @@ -195,47 +196,42 @@ public class ApiInvoker { response = (ClientResponse) builder.get(ClientResponse.class); } else if ("POST".equals(method)) { - if(body == null) + if (contentType.startsWith("application/x-www-form-urlencoded")) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).post(ClientResponse.class, + encodedFormParams); + } else if (body == null) { response = builder.post(ClientResponse.class, null); - else if(body instanceof FormDataMultiPart) { + } else if(body instanceof FormDataMultiPart) { response = builder.type(contentType).post(ClientResponse.class, body); } else response = builder.type(contentType).post(ClientResponse.class, serialize(body)); } else if ("PUT".equals(method)) { - if(body == null) + if ("application/x-www-form-urlencoded".equals(contentType)) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).put(ClientResponse.class, + encodedFormParams); + } else if(body == null) { response = builder.put(ClientResponse.class, serialize(body)); - else { - if("application/x-www-form-urlencoded".equals(contentType)) { - StringBuilder formParamBuilder = new StringBuilder(); - - // encode the form params - for(String key : formParams.keySet()) { - String value = formParams.get(key); - if(value != null && !"".equals(value.trim())) { - if(formParamBuilder.length() > 0) { - formParamBuilder.append("&"); - } - try { - formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8")); - } - catch (Exception e) { - // move on to next - } - } - } - response = builder.type(contentType).put(ClientResponse.class, formParamBuilder.toString()); - } - else + } else { response = builder.type(contentType).put(ClientResponse.class, serialize(body)); } } else if ("DELETE".equals(method)) { - if(body == null) + if ("application/x-www-form-urlencoded".equals(contentType)) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).delete(ClientResponse.class, + encodedFormParams); + } else if(body == null) { response = builder.delete(ClientResponse.class); - else + } else { response = builder.type(contentType).delete(ClientResponse.class, serialize(body)); + } } else { throw new ApiException(500, "unknown method type " + method); @@ -267,6 +263,31 @@ public class ApiInvoker { } } + private String getXWWWFormUrlencodedParams(Map formParams) { + StringBuilder formParamBuilder = new StringBuilder(); + + for (Entry param : formParams.entrySet()) { + String keyStr = ApiInvoker.parameterToString(param.getKey()); + String valueStr = ApiInvoker.parameterToString(param.getValue()); + + try { + formParamBuilder.append(URLEncoder.encode(keyStr, "utf8")) + .append("=") + .append(URLEncoder.encode(valueStr, "utf8")); + formParamBuilder.append("&"); + } catch (UnsupportedEncodingException e) { + // move on to next + } + } + String encodedFormParams = formParamBuilder.toString(); + if (encodedFormParams.endsWith("&")) { + encodedFormParams = encodedFormParams.substring(0, + encodedFormParams.length() - 1); + } + return encodedFormParams; + } + + private Client getClient(String host) { if(!hostMap.containsKey(host)) { Client client = Client.create(); @@ -276,4 +297,4 @@ public class ApiInvoker { } return hostMap.get(host); } -} +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache index aa7ecf5ab48..607f2116f54 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache @@ -129,7 +129,7 @@ - 1.5.0-M2 + 2.1.0-M2 9.2.9.v20150224 1.13 1.6.3 diff --git a/modules/swagger-generator/pom.xml b/modules/swagger-generator/pom.xml index bf49f2b976f..582e40f59da 100644 --- a/modules/swagger-generator/pom.xml +++ b/modules/swagger-generator/pom.xml @@ -3,14 +3,14 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. com.wordnik swagger-generator war swagger-generator - 1.5.0-M2 + 2.1.0-M2 src/main/java diff --git a/pom.xml b/pom.xml index 59bf41ff0d7..1f386e48b76 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ swagger-codegen-project pom swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 https://github.com/swagger-api/swagger-codegen scm:git:git@github.com:swagger-api/swagger-codegen.git diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java index 8c3f271a13e..dec0db43f66 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java @@ -16,6 +16,7 @@ import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.*; +import org.apache.http.impl.conn.tsccm.*; import org.apache.http.params.*; import org.apache.http.util.EntityUtils; @@ -381,7 +382,7 @@ public Socket createSocket() throws IOException { schemeRegistry.register(httpsScheme); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); - ignoreSSLConnectionManager = new SingleClientConnManager(new BasicHttpParams(), schemeRegistry); + ignoreSSLConnectionManager = new ThreadSafeClientConnManager(new BasicHttpParams(), schemeRegistry); } catch (NoSuchAlgorithmException e) { // This will only be thrown if SSL isn't available for some reason. } catch (KeyManagementException e) { diff --git a/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php b/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php index 2bd2410268c..101222b4503 100644 --- a/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php +++ b/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php @@ -16,7 +16,7 @@ */ /** - * testing category description + * * * NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. * diff --git a/samples/html/index.html b/samples/html/index.html index 1055c9962ad..1ac869c1cee 100644 --- a/samples/html/index.html +++ b/samples/html/index.html @@ -420,7 +420,7 @@

Example data

Example data

Content-Type: application/xml
-
not implemented com.wordnik.swagger.models.properties.MapProperty@2acca551
+
not implemented com.wordnik.swagger.models.properties.MapProperty@787b217

@@ -444,11 +444,11 @@

Return type

Example data

Content-Type: application/json
-
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-05T03:02:18.855+0000"\n}
+
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-06T14:06:47.931+0000"\n}

Example data

Content-Type: application/xml
-
\n  123456\n  123456\n  0\n  2015-04-04T20:02:18.857Z\n  string\n  true\n
+
\n  123456\n  123456\n  0\n  2015-04-06T08:06:47.934Z\n  string\n  true\n

@@ -472,11 +472,11 @@

Return type

Example data

Content-Type: application/json
-
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-05T03:02:18.859+0000"\n}
+
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-06T14:06:47.935+0000"\n}

Example data

Content-Type: application/xml
-
\n  123456\n  123456\n  0\n  2015-04-04T20:02:18.859Z\n  string\n  true\n
+
\n  123456\n  123456\n  0\n  2015-04-06T08:06:47.935Z\n  string\n  true\n

diff --git a/samples/server/petstore/jaxrs/pom.xml b/samples/server/petstore/jaxrs/pom.xml index 05764d01c0d..d75c6bbfda8 100644 --- a/samples/server/petstore/jaxrs/pom.xml +++ b/samples/server/petstore/jaxrs/pom.xml @@ -129,7 +129,7 @@ - 1.5.0-M2 + 2.1.0-M2 9.2.9.v20150224 1.13 1.6.3